
SELECT문으로 데이터를 조회할 때 특정 조건을 기준으로 원하는 행을 출력하는 데 사용
SELECT *
FROM EMP
WHERE DEPTNO = 30;
WHERE절에서 조건식을 여러 개 지정할 때 사용하는 논리 연산자
SELECT *
FROM EMP
WHERE DEPTNO = 30
AND JOB = 'SALESMAN';
SELECT *
FROM EMP
WHERE DEPTNO = 30
OR JOB = 'CLERK';
SELECT *
FROM EMP
WHERE SAL * 12 = 36000;
SELECT *
FROM EMP
WHERE ENAME > ='F';
-- 사원 이름의 첫 문자가 F와 같거나 뒤쪽인 것만 검색
SELECT *
FROM EMP
WHERE ENAME <= 'FORZ';
-- FORZ를 포함한 문자열보다 알파벳 순서로 앞에 있는 행을 출력
= : A 값이 B 값과 같을 경우 true, 다를 경우 false 반환!= ,<>, ^= : A 값과 B 값이 다를 경우 true, 같을 경우 false 반환SELECT *
FROM EMP
WHERE NOT SAL = 3000;
SELECT *
FROM EMP
WHERE JOB IN ('MANAGER', 'SALESMANE', CLERK');
SELECT *
FROM EMP
WHERE JOB NOT IN ('MANAGER', 'SALESMANE', CLERK');
SELECT *
FROM EMP
WHERE SAL BETWEEN 200 AND 3000;
SELECT *
FROM EMP
WHERE SAL NOT BETWEEN 200 AND 3000;
_ : 어떤 값이든 상관없이 한 개의 문자 데이터를 의미% : 길이와 상관없이(문자 없는 경우도 포함) 모든 문자 데이터를 의미SELECT *
FROM EMP
WHERE ENAME LIKE 'S%';
SELECT *
FROM EMP
WHERE ENAME LIKE '_L%';
SELECT *
FROM EMP
WHERE ENAME LIKE '%AM%';
SELECT *
FROM EMP
WHERE ENAME NOT LIKE '%AM%';
₩ 문자 바로 뒤에 있는 _ 또는 %는 와일드 카드 기호가 아닌 데이터에 포함된 문자로 인식하라는 의미
SELECT *
FROM SOME_TABLE
WHERE SOME_COLUMN LIKE 'A₩_A%' ESCAPE '₩';
NULL의 의미SELECT *
FROM EMP
WHERE COMM IS NULL;
SELECT *
FROM EMP
WHERE COMM IS NOT NULL;
※ 집합 연산자로 출력하려는 열 개수와 각 열의 자료형이 순서별로 일치해야 함
SELECT EMPNO, ENAME, SAL, DEPTNO
FROM EMP
WHERE DEPTNO = 10
UNION
SELECT EMPNO, ENAME, SAL, DEPTNO
FROM EMP
WHERE DEPTNO = 20;
| EMPNO | ENAME | SAL | DEPTNO |
|---|---|---|---|
| 7369 | SMITH | 800 | 20 |
| 7566 | JONES | 2975 | 10 |
| 7782 | CLARK | 2450 | 10 |
| 7788 | SCOTT | 3000 | 20 |
| 7839 | KING | 5000 | 10 |
| 7876 | ADAMS | 1100 | 20 |
| 7902 | FORD | 3000 | 20 |
| 7934 | MILLER | 1300 | 10 |
※ 만약 연결하려는 두 SELECT문의 열 개수와 자료형이 같다면
SELECT EMPNO, ENAME, SAL, DEPTNO
FROM EMP
WHERE DEPTNO = 10
UNION
SELECT SAL, JOB, DEPTNO, SAL
FROM EMP
WHERE DEPTNO = 20;
| EMPNO | ENAME | SAL | DEPTNO |
|---|---|---|---|
| 800 | CLERK | 20 | 800 |
| 1100 | CLERK | 20 | 1100 |
| 2975 | MANAGER | 20 | 2975 |
| 3000 | ANAYLST | 20 | 3000 |
| 7782 | CLARK | 2450 | 10 |
| 7839 | KING | 5000 | 10 |
| 7934 | MILLER | 1300 | 10 |
UNION : 연결된 SELECT문의 결과 값을 합집합으로 묶어 준다. 결과 값의 중복은 제거된다.UNION ALL : 연결된 SELECT문의 결과 값을 합집합으로 묶어 준다. 중복된 결과 값도 제거 없이 모두 출력된다.MINUS : 먼저 작성한 SELECT문의 결과 값에서 다음 SELECT문의 결과 값을 차집합 처리한다. 먼저 작성한 SELECT문의 결과 값 중 다음 SELECT문에 존재하지 않는 데이터만 출력된다.INTERSECT : 먼저 작성한 SELECT문과 다음 SELECT문의 결과 값이 같은 데이터만 출력된다. 교집합과 같은 의미이다.예시1) 집합 연산자(UNION)를 사용하여 출력하기(출력 결과 데이터가 같을 때)
SELECT EMPNO, ENAME, SAL, DEPTNO
FROM EMP
WHERE DEPTNO = 10
UNION
SELECT EMPNO, ENAME, SAL, DEPTNO
FROM EMP
WHERE DEPTNO = 10;
| EMPNO | ENAME | SAL | DEPTNO |
|---|---|---|---|
| 7782 | CLARK | 2450 | 10 |
| 7839 | KING | 5000 | 10 |
| 7934 | MILLER | 1300 | 10 |
예시2) 집합 연산자(UNION ALL)를 사용하여 출력하기(출력 결과 데이터가 같을 때)
SELECT EMPNO, ENAME, SAL, DEPTNO
FROM EMP
WHERE DEPTNO = 10
UNION ALL
SELECT EMPNO, ENAME, SAL, DEPTNO
FROM EMP
WHERE DEPTNO = 10;
| EMPNO | ENAME | SAL | DEPTNO |
|---|---|---|---|
| 7782 | CLARK | 2450 | 10 |
| 7839 | KING | 5000 | 10 |
| 7934 | MILLER | 1300 | 10 |
| 7782 | CLARK | 2450 | 10 |
| 7839 | KING | 5000 | 10 |
| 7934 | MILLER | 1300 | 10 |
예시3) 집합 연산자(MINUS)를 사용하여 출력하기
SELECT EMPNO, ENAME, SAL, DEPTNO
FROM EMP
MINUS
SELECT EMPNO, ENAME, SAL, DEPTNO
FROM EMP
WHERE DEPTNO = 10;
| EMPNO | ENAME | SAL | DEPTNO |
|---|---|---|---|
| 7369 | SMITH | 800 | 20 |
| 7499 | ALLEN | 1600 | 30 |
| 7521 | WARD | 1250 | 30 |
| 7566 | JONES | 2975 | 20 |
| 7654 | MARTIN | 1250 | 30 |
| 7698 | BLAKE | 2850 | 30 |
| 7788 | SCOTT | 3000 | 20 |
| 7844 | TURNER | 1500 | 30 |
| 7876 | ADAMS | 1100 | 20 |
| 7900 | JAMES | 950 | 30 |
| 7902 | FORD | 3000 | 20 |
예시4) 집합 연산자(INTERSECT)를 사용하여 출력하기
SELECT EMPNO, ENAME, SAL, DEPTNO
FROM EMP
INTERSECT
SELECT EMPNO, ENAME, SAL, DEPTNO
FROM EMP
WHERE DEPTNO = 10;
| EMPNO | ENAME | SAL | DEPTNO |
|---|---|---|---|
| 7782 | CLARK | 2450 | 10 |
| 7839 | KING | 5000 | 10 |
| 7934 | MILLER | 1300 | 10 |
*, / : 산술 연산자 곱하기, 나누기+, - : 산술 연산자 더하기, 빼기=, !=, ^=, <>, >, >=, <, <= : 대소 비교 연산자IS (NOT) NULL, (NOT) LIKE, (NOT) IN : (그 외) 비교 연산자BETWEEN A AND B : BETWEEN 연산자NOT : 논리 부정 연산자 NOTAND : 논리 연산자 ANDOR : 논리 연산자 OR