1. SELECT로 특정 데이터 추출
1) IN
- 동일한 필드가 여러 개의 값 중에 하나인 경우인지를 살펴보기 위해서 비교 안산자와 논리 연산자 OR를 사용하여 복잡하게 쿼리문을 작성하지 않고 IN 연산자를 사용하여 훨씬 간단하게 표현
column_name IN(A,B,C)
- 특정 필드의 값이 A이거나 B이거나 C 중에 어느 하나만 만족하더라도 출력하도록 하는 표현을 IN 연산자를 사용 가능
- 이번에는 커미션이 300 이거나 500 이거나 1400 인 사원을 검색하기 위해서 IN 연산자를 사용해보자.
SELECT * FROM EMP
WHERE COMM IN (300,500,1400);
2) LIKE 연산자와 와일드카드
- LIKE 연산자는 검색하고자 하는 값을 정확히 모를 경우에도 검색 가능하도록 하기 위해서 와일드카드와 함께 사용하여 원하는 내용을 검색함
column_name LIKE pattern
- % : 문자가 없거나 하나 이상의 문자나 어떤 값이 와도 상관 없음
- _ : 하나의 문자나 어떤 값이 와도 상관 없음
%사용하여 F로 시작하는 사원이름을 찾기
SELECT *
FROM EMP
WHERE ENAME LIKE 'F%';
_사용하여 이름의 두 번째 글자가 A인 사원 찾기
SELECT *
FROM EMP
WHERE ENAME LIKE '_A%';
3) NOT LIKE
이름에 A를 포함하지 않는 사람만을 검색하려고 할 경우에 NOT LIKE 연산자를 사용
SELECT *
FROM EMP
WHERE ENAME NOT LIKE '%A%';
4) IS NULL과 IS NOT NULL
- 어떤 컬럼을 NULL 즉, 모르는 값과 같다(=)라는 것은 의미상으로 말이 되지 않기 때문에 = 대신 IS NULL 연산자를 사용해야 함
대상컬럼 IS (연산자) NULL(비교값)
- 이번에는 IS NULL 연산자를 사용하여 커미션을 받지 않는 사원을 검색해보자.
SELECT *
FROM EMP
WHERE COMM IS NULL;
5) 정렬을 위한 ORDER BY
- 정렬이란 크기 순서대로 나열하는 것을 의미
- 오름차순(ascending) 정렬 방식
- 작은 것이 위에 출력되고 아래로 갈수록 큰 값이 출력
- 내림차순(descending) 정렬 방식이 큰 값이 위에 출력되고 아래로 갈수록 작은 값이 출력
- 로우를 정렬하기 위해서는 SELECT 문에 ORDER BY 절을 추가하고 어떤 컬럼을 기준으로 어떤 정렬을 할 것인지를 결정해야 함
ASC(오름차순) | DESC(내림차순) | |
숫자 | 작은 값부터 정렬 | 큰 값부터 정렬 |
문자 | 사전 순서로 정렬 | 사전 반대 순서로 정렬 |
날짜 | 빠른 날짜 순서로 정렬 | 늦은 날짜 순서로 정렬 |
NULL | 가장 마지막에 나온다. | 가장 먼저 나온다. |
6) 오름차순 정렬을 위한 ASC
- 오름차순 정렬은 작은 값부터 큰 값으로 정렬하는 것을 의미
- (예:1~9, ‘A’~‘Z’) 이를 위해서는 ASC를 칼럼 다음에 기술해야 하는데 만일 생략하게 되면 디폴트로 ASC로 지정되어 있기 때문에 오름차순으로 출력 됨
급여 컬럼을 기준으로 오름차순으로 정렬해보자.
SELECT *
FROM EMP
ORDER BY SAL ASC;
7) 내림차순 정렬을 위한 DESC
- 내림차순 정렬은 큰 값부터 작은 값으로 정렬을 하는 것 (예:9~1, Z~A)
급여를 많이 받는 사람부터 적게 받는 사람 순으로 순차적으로 출력해보자
SELECT *
FROM EMP
ORDER BY SAL DESC;
8) 날짜 순으로 출력
- 날짜의 경우에도 오름차순 혹은 내림차순으로 출력 가능
- 오름차순으로 지정하면 가장 오래된 과거의 시점이 가장 위에 출력되고 아래로 갈수록 최근 시점이 출력
- 내림차순인 경우에는 최근 시점부터 출력
가장 최근에 입사한 사람부터 출력해보자.
SELECT *
FROM EMP
ORDER BY HIREDATE DESC;
2. SQL 주요 함수
1) 숫자 함수
구 분 | 설 명 |
ABS | 절대값을 구한다. |
COS | COSINE 값을 반환한다. |
EXP | e(2.71828183…)의 n승을 반환한다. |
FLOOR | 소수점 아래를 잘라낸다.(버림) |
LOG | LOG값을 반환한다. |
POWER | POWER(m, n) m의 n승을 반환한다. |
SIGN | SIGN (n) n<0이면 –1, n=0이면 0, n>0이면 1을 반환한다. |
SIN | SINE값을 반환한다. |
TAN | TANGENT값을 반환한다. |
ROUND | 특정 자릿수에서 반올림한다. |
TRUNC | 특정 자릿수에서 잘라낸다. (버림) |
MOD | 입력 받은 수를 나눈 나머지 값을 반환한다. |
2) 절대값 구하는 ABS 함수
- ABS 함수는 절대값을 구합니다. 절대값은 방향은 없고 크기만 있는 것으로서 주어진 데이터가 음수일 경우 양수로 표현
-10 에 대한 절대값을 구해보자
SELECT -10, ABS(-10)
FROM DUAL;
3) 소수점 아래를 버리는 FLOOR 함수
SELECT 34.5678, FLOOR(34.5678)
FROM DUAL;
4) 특정 자릿수에서 반올림하는 ROUND 함수
SELECT 34.5678, ROUND(34.5678)
FROM DUAL;
5) 특정 자릿수에서 잘라내는 TRUNC 함수
SELECT TRUNC(34.5678, 2), TRUNC(34.5678, -1), TRUNC(34.5678)
FROM DUAL;
6) 나머지를 구하는 MOD 함수
SELECT MOD (27, 2), MOD (27, 5), MOD (27, 7)
FROM DUAL;
'DB > Oracle' 카테고리의 다른 글
Oracle DB #6 조인 , 서브 쿼리 (0) | 2021.05.31 |
---|---|
Oracle DB #5 SQL 주요 함수, 그룹 함수 (0) | 2021.05.30 |
Oracle DB #4 SQL 주요 함수 (0) | 2021.05.29 |
Oracle DB #2 SQL *Plus 명령어, 특정 데이터 추출하기 (WHERE 조건, 논리 연산자, BETWEEN AND 연산자) (0) | 2021.05.27 |
Oracle DB #1 데이터형, SELECT문 ,DESC, 특정 데이터만 보기, 산술 연산자 (0) | 2021.05.26 |