비교 연산자
연산자 | 의미 |
a = b | a와 b는 같다. |
a > b | a는 b보다 크다 |
a < b | a는 b보다 작다 |
a >= b | a는 b보다 크거나 같다. |
a <= b | a는 b보다 작거나 같다. |
<>, !=, ^= | a와 b는 같지 않다. |
기타 연산자 BETWEEN, IN (list...), LIKE 등
1. BETWEEN
select emp_name, salary
from y_emp
where salary BETWEEN 600 and 700;
salary가 600이상 700이하인 사원을 반환.
select emp_name, salary
from y_emp
where salary not BETWEEN 600 and 700;
NOT을 붙이게 되면 600미만 700초과인 사원을 반환.
2. IN (list...)
where 칼럼 IN ( list...)는 칼럼이 괄호안에 내용 중 하나라도 포함되는 사람만 반환한다.
select emp_id, emp_name, salary, mgr_id
from y_emp
where mgr_id IN (1001, 1002, 1003);
y_emp테이블에 mgr_id 칼럼이 1001이거나 1002 또는 1003인사람들만 반환.
NOT을 붙이게 되면 괄호안에 내용에 어느 내용도 포함하지 않는 사원 반환.
3. LIKE
검색할 값이 정확하게 기억나지 않는 경우 LIKE 조건에 '_' 또는 '%' 기호를 사용하여 찾아낼 수 있다.
'_'기호는 하나의 문자만 올 수 있고, '%'에는 0개 이상의 문자가 올 수 있다.
select emp_id, emp_name, salary
from y_emp
where emp_name LIKE '_수_';
위 같은 경우 3글자 중 가운데 글자가 수인 사원만 반환한다.
'%수%'처럼 설정하면 이름 어디든 수가 들어가는 사원을 반환한다.
만약 NOT LIKE처럼 NOT을 넣어주면 '_수_'같은 경우 가운데 글자가 수가 아닌 사원만 반환하고,
'%수%'같은 경우 이름에 수가 들어가는 사원 빼고 반환한다.
만약 찾으려고하는 값이 A_A, A_B처럼 언더스코어가 포함된 경우
임의로 지정한 값(보통 백슬래시 \)와 ESCAPE 키워드를 사용하면 된다.
4. IS NOT
NULL은 알 수 없는 값으로 사용 및 할당, 적용할 수 없다.
테이블의 NULL인 데이터를 보기 위해서
where 칼럼 IS NULL
처럼 IS NULL 연산자를 사용하면 칼럼 중 NULL 값을 가진 행만 볼 수 있다.
만약 IS NOT NULL로 NOT을 넣어주면 NULL이 아닌 데이터만 조회할 수 있다.
5. AND 연산자
WHERE 절의 조건을 모두 만족하는 데이터를 반환한다. 만약 한 가지 조건이 거짓이거나 NULL일 경우 결과에 포함하지 않는다.
select emp_id, emp_name, position, dept_id
from y_emp
where position = '사원'
and dept_id = 400;
position이 사원이면서 dept_id가 400인 사람만 표시한다.
만약
select emp_id, emp_name, position, dept_id
from y_emp
where NOT position = '사원'
and dept_id = 400;
처럼 NOT을 붙이게 되면 사원이 아니면서 dept_id가 400인 사람만 표시한다.
5. OR연산자
WHERE 절의 조건을 하나라도 만족하는 데이터를 반환한다. 만약 모든 조건이 거짓이거나 NULL일 경우 결과에 포함하지 않는다.
select emp_id, emp_name, position, dept_id
from y_emp
where position = '사원'
or dept_id = 400;
사원이거나 dept_id가 400인사람 표시
연산자 우선순위
순위 | 연산자 |
1 | 단항 연산자 +, - 등 |
2 | 산술 연산자 *, /, +, - |
3 | 연결 연산자 || |
4 | 비교 연산자 ( =, >=, !=, <> 등) |
5 | IS NULL, LIKE, IN |
6 | BETWEEN |
7 | NOT |
8 | AND |
9 | OR |
'SQL > oracle' 카테고리의 다른 글
oracle SQL - 숫자함수 (ROUND, TRUNC, MOD, ABS) (0) | 2022.12.07 |
---|---|
oracle SQL - 문자 함수 (0) | 2022.12.07 |
oracle SQL - 정렬 ORDER BY (0) | 2022.12.07 |
oracle SQL - 칼럼 레벨, 테이블 레벨 (0) | 2022.12.01 |
oracle SQL - select 기초, distinct (0) | 2022.11.30 |