WHERE 문 사용
WHERE 문이 사용하는 연산자
- WHERE 문이 사용할 수 있는 연산자는 비교 연산자, 부정 비교 연산자, 논리 연산자, SQL 연산자, 부정 SQL 연산자가 있다.
비교 연산자
비교 연산자 | 설명 |
---|
= | 같은 것을 조회한다. |
< | 작은 것을 조회한다. |
<= | 작거나 같은 것을 조회한다. |
> | 큰 것을 조회한다. |
>= | 크거나 같은 것을 조회한다. |
부정 비교 연산자
부정 비교 연산자 | 설명 |
---|
!= | 같지 않은 것을 조회한다. |
^= | 같지 않은 것을 조회한다. |
<> | 같지 않은 것을 조회한다. |
NOT 컬럼명 = | 같지 않은 것을 조회한다. |
NOT 컬럼명 > | 같지 않은 것을 조회한다. |
논리 연산자
논리 연산자 | 설명 |
---|
AND | 조건을 모두 만족해야 참(True)이 된다. |
OR | 조건 중 하나만 만족해도 참(True)이 된다. |
NOT | 참이면 거짓(False)으로 바꾸고 거짓이면 참(True)으로 바꾼다. |
SQL 연산자
SQL 연산자 | 설명 |
---|
LIKE '%비교 문자열%' | 비교 문자열을 조회한다. '%'는 모든 값을 의미한다. |
BETWEEN A AND B | A 와 B 사이의 값을 조회한다. |
IN (list) | OR 를 의미하며 list 값 중에 하나만 일치해도 조회한다. |
IS NULL | NULL 값을 조회한다. |
부정 SQL 연산자
부정 SQL 연산자 | 설명 |
---|
NOT BETWEEN A AND B | A 와 B 사이의 해당되지 않는 값을 조회한다. |
NOT IN (list) | list 와 불일치한 것을 조회한다. |
IS NOT NULL | NULL 이 아닌 것을 조회한다. |
Example )
- EMP 테이블에서 EMPNO 가 1001이고 SAL 이 1000 보다 크거나 같은 것을 조회한다.
SELECT *
FROM EMP
WHERE
EMPNO = 1001
AND SAL >= 1000;
LIKE 문 사용
- LIKE 문은 와일드 카드를 사용해서 데이터를 조회할 수 있다.
와일드 카드
와일드 카드 | 설명 |
---|
% | - 어떤 문자를 포함한 모든 것을 조회한다. |
| - 예를 들어 '조%'는 '조'로 시작하는 모든 문자를 조회한다. |
_ (underscore) | 한 개의 단일 문자를 의미한다. |
Example )
- ENAME 이 'test'로 시작하는 모든 데이터를 조회한다.
SELECT *
FROM EMP
WHERE
ENAME LIKE 'test%';
- ENAME의 마지막이 '1'로 끝나는 모든 것을 조회한다.
SELECT *
FROM EMP
WHERE
ENMAE LIKE '%1';
BETWEEN 사용
- BETWEEN 문은 지정된 범위에 있는 값을 조회한다.
- "BETWEEN 1000 and 2000" 은 1000과 2000을 포함하고 1000과 2000 사이의 값을 조회한다.
Example )
- 급여(SAL)가 1000 이상 2000 이하 사이의 값을 조회한다.
SELECT *
FROM EMP
WHERE
SAL BETWEEN 1000 AND 2000;
IN 문 사용
- IN 문은 "OR"의 의미를 가지고 있어서 하나의 조건만 만족해도 조회가 된다.
- 예를 들어 JOB이 "CLERK"이거나 "MANAGER"인 것을 조회할 때 "JOB IN ('CLERK', 'MANAGER')"를 사용한다.
SELECT *
FROM EMP
WHERE
JOB IN ('CLERK', 'MANAGER');
- 괄호를 사용하면 원하는 데이터를 컬럼명에 대응되도록 입력함으로써, IN 문으로 여러 개의 컬럼에 대한 조건을 지정할 수 있다.
NULL 값 조회
NULL 의 특징
- NULL 은 모르는 값을 의미한다.
- NULL 은 값의 부재를 의미한다.
- NULL 과 숫자 혹은 날짜를 더하면 NULL 이 된다.
- NULL 과 어떤 값을 비교할 때, '알 수 없음'이 반환된다.
NULL 값 조회
- NULL 을 조회할 경우는 IS NULL 을 사용하고 NULL 값이 아닌 것을 조회할 경우는 IS NOT NULL 을 사용한다.
Example )
SELECT *
FROM EMP
WHERE
MGR IS NULL;
NULL 관련 함수
NULL 함수 | 설명 |
---|
NVL 함수 (Oracle) | - NULL 이면 다른 값을 바꾸는 함수이다. |
| - 'NVL(MGR, 0)' 은 MGR 컬럼이 NULL 이면 0으로 바꾼다. |
NVL2 함수 (Oracle) | - NVL 함수와 DECODE 함수를 하나로 만든 것이다. |
| - 'NVL2(MGR, 1, 0)'은 MGR 컬럼이 NULL 이 아니면 1을, NULL 이면 0을 반환한다. |
NULLIF 함수 (Oracle, MS-SQL, MySQL) | - 두 개의 값이 같으면 NULL 을, 같지 않으면 첫 번째 값을 반환한다. |
| - 'NULLIF(exp1, exp2)'은 exp1 과 exp2 가 같으면 NULL 을, 같지 않으면 exp1 을 반환한다. |
COALESCE | - NULL 이 아닌 최초의 인자 값을 반환한다. |
| - 'COALESCE(exp1, exp2, exp3, ...)' 은 exp1 이 NULL 이 아니면 exp1 의 값을, 그렇지 않으면 그 뒤의 값의 NULL 여부를 판단하여 값을 반환한다. |