[DB/SQLD] DML (3)
WHERE문
연산자
where문에는 비교연산자, 부정비교연산자, 논리연산자, SQL연산자, 부정SQL연산자가 있다.
비교연산자 | 설명 |
---|---|
= | 같은 것 조회 |
< | 작은 것 조회 |
<= | 작거나 같은 것 조회 |
> | 큰 것 조회 |
>= | 크거나 같은 것 조회 |
부정비교연산자 | 설명 |
---|---|
!= | 같지 않은 것 조회 |
^= | 같지 않은 것 조회 |
<> | 같지 않은 것 조회 |
NOT 칼럼명= | 같지 않은 것 조회 |
NOT 칼럼명> | 크지 않은 것 조회 |
논리연산자 | 설명 |
---|---|
AND | 모든 조건을 만족해야 True |
OR | 조건 중 하나만 만족해도 True |
NOT | True이면 False, False이면 True |
SQL연산자 | 설명 |
---|---|
Like ‘%비교문자열%’ | 비교 문자열을 조회. %는 모든 값 의미 |
BETWEEN A AND B | A와 B 사이의 값 조회 |
IN (list) | or을 의미하며 list값 중에 하나만 일치해도 조회 |
IS NULL | null 조회 |
부정SQL연산자 | 설명 |
---|---|
NOT BETWEEN A AND B | A와B 사이에 해당되지 않는 값 조회 |
NOT IN (list) | list와 불일치한 것을 조회. |
IS NOT NULL | null이 아닌 값을 조회 |
select *
from emp
where job in ('clerk', 'manager');
job칼럼이 clerk이거나 manage인 레코드를 조회
select *
from emp
where (job, ename) in (('clerk', 'test1'), ('manager', 'test4'));
in조건에 두개의 칼럼을 지정할 수도 있다.
Like문
like문은 와일드카드를 사용해 데이터를 조회.
와일드카드
- % : 어떤문자를 포함한 모든 것을 조회.
- _(underscore) : 한 개인 단일 문자.
select *
from emp
where ename like 'test%';
test로 시작하는 모든 데이터 조회
select *
from emp
where ename like '%1';
마지막이 1로 끝나는 모든 것을 조회
select *
from emp
where ename like '%est%';
중간에 est가 있는 모든 것 조회
select *
from emp
where ename like 'test';
like에 와일드카드를 사용하지 않으면 =과 같다.
select *
from emp
where ename like 'test_';
test로 시작하고 하나의 아무 글자만 더 있는 것을 조회
NULL
null의 특징
- 모르는 값을 의미
- 값의 부재 의미
- null + (숫자,날짜) = null
- null과 어떤 값을 비교할 때, 알수없음이 반환된다.
null 관련 함수
- NVL 함수 : null이면 다른 값으로 바꾸는 함수. ‘NVL(MGR,0)’은 MGR 칼럼이 null이면 0으로 바꾼다.
- NVL2 함수 : NVL 함수와 DECODE 함수를 하나로 만든 것. ‘NVL2(MGR,1,0)’은 MGR 칼럼이 null이 아니면 1, null이면 0을 반환.
- NULLIF 함수 : 두 개의 값이 같으면 null을, 같지 않으면 첫번째 값을 반환. ‘NULLIF(exp1, exp2)’은 exp1과 exp2가 같으면 null을, 같지 않으면 exp1을 반환.
- COALESCE : null이 아닌 최초의 인자 값을 반환. ‘COALESCE(exp1, exp2, exp3, …)’은 exp1이 null이 아니면 exp1의 값을, 그렇지 않으면 그 뒤의 값의 null 여부를 판단해 값을 반환.