예제로 사용될 릴레이션은 아래와 같다.
자신이 원하는 자료만을 검색하기 위해 SQL문장에 WHERE절을 이용해 자료를 제한할 수 있다.
WHERE절에는 두 개 이상의 테이블에 대한 조인 조건을 기술하거나 결과를 제한하기 위한 조건을 기술할 수도 있다.
SELECT [DISTINCT / ALL]
컬럼명 [ALIAS명]
FROM 테이블명
WHERE 조건식;
WHERE 절은 FROM 절 다음에 위치하며, 조건식은 아래 내용으로 구성된다.
-컬럼명 (보통 조건식의 좌측에 위치)
-비교연산자
-문자, 숫자, 표현식(보통 조건식의 우측에 위치)
-비교 컬럼명(JOIN 사용 시)
WHERE 절에 사용되는 연산자는 3가지 종류가 있다.
연산자 | 연산자의 의미 |
---|---|
= | 같다. |
> | 보다 크다. |
>= | 보다 크거나 같다. |
< | 보다 작다. |
<= | 보다 작거나 같다. |
사원번호가 7839이고 급여가 3000이상인 사람
위의 요구사항을 다음과 같이 비교연산자를 적용해 표현하면 아래와 같다.
입력✏️
SELECT *FROM EMP WHERE EMPNO='7839' AND SAL >= 3000;
출력🖥️
연산자 | 연산자의 의미 |
---|---|
BETWEEN a AND b | a와 b의 값 사이의 값을 갖는다. |
IN (list) | 리스트에 있는 값 중에서 어느 하나라도 일치한다. |
LIKE '비교문자열' | 비교문자열과 형태가 일치한다(%,_사용) |
IS NULL | NULL 값인 경우를 의미한다. |
사원 직업이 매니저나 대통령이고 이름이 K로 시작하면서 급여가 4000에서 5000사이인 사람
위의 요구사항을 다음과 같이 SQL연산자를 적용해 표현하면 아래와 같다.
입력✏️
SELECT *FROM EMP WHERE JOB IN ('MANAGER', 'PRESIDENT')
AND ENAME LIKE 'K%'
AND SAL BETWEEN 4000 AND 5000;
출력🖥️
연산자 | 연산자의 의미 |
---|---|
AND | 앞의 조건과 뒤의 조건을 동시에 만족해야 하는 것 |
OR | 앞뒤의 조건 중 하나만 참이면 된다. |
NOT | 뒤에 오는 조건에 반대되는 결과를 되돌려 준다. |
부서번호가 30이 아닌 사원의 사원번호,사원이름,부서번호 출력
위의 요구사항을 다음과 같이 논리연산자를 적용해 표현하면 아래와 같다.
입력✏️
SELECT EMPNO, ENAME, DEPTNO FROM EMP WHERE NOT DEPTNO = 30;
출력🖥️
연산자 | 연산자의 의미 |
---|---|
!= | 같지 않다. |
^= | 같지 않다. |
<> | 같지 않다. (ANSI/ISO 표준) |
NOT 컬럼명 = | ~와 같지 않다. |
NOT 컬럼명 > | ~보다 크지 않다. |
NOT BETWEEN a AND b | a와 b의 값 사이에 있지 않다. |
NOT IN (list) | list 값과 일치하지 않다. |
IS NOT NULL | NULL 값을 갖지 않다. |
직업이 사무원이 아니고 급여가 1000원 이상 3000원이하가 아닌 사원 출력
입력✏️
SELECT *FROM EMP WHERE JOB <> 'CLERK' AND NOT SAL BETWEEN 1000 AND 3000;
출력🖥️