본문 바로가기
SQL/oracle

oracle SQL - 비교 연산자, 기타 연산자, 연산자 우선순위

by jun.s.gi 2022. 12. 1.
728x90
비교 연산자
연산자 의미
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
728x90

'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