1. 집합 연산자 개요
1️⃣ 집합 연산자 기초 개념
1) 집합 연산자 (Set Operators)
- 두 개 이상의 SELECT 문에서 반환된 결과 집합을 결합하여 하나의 결과 집합으로 만드는 데 사용됨
2) 집합 연산자 조건
- 모든 SELECT 문은 동일한 수의 칼럼을 반환해야 함
- 각 칼럼의 데이터 타입은 호환 가능해야 함
3) 장점
- 복잡한 데이터 조작 수행 가능
4) 주요 집합 연산자
- UNION
- UNION ALL
- INTERSECT
- MINUS
2️⃣ 집합 연산자 종류
연산자 | 설명 | 중복 제거 |
UNION | 두 SELECT문의 결과 집합을 결합하고, 중복된 행은 제거 | Y |
UNION ALL | 두 SELECT문의 결과 집합을 결합하고, 중복된 행도 모두 포함 | N |
INTERSECT | 두 SELECT문의 결과 집합을 결합에서 공통된 행만 반환 | Y |
MINUS | 첫 번째 SELECT문의 결과 집합에서 두 번째 SELECT문의 결과 집합에 없는 행만 반환 | Y |

2. 집합 연산자 종류
1️⃣ UNION 연산자
1) UNION 연산자
- 두 SELECT문의 결과 집합을 결합하고, 중복된 행은 제거
- FULL OUTER JOIN과 유사하지만, 중복된 행을 제거해서 출력한다는 점에서 다름
- 중복된 행을 모두 표시하려면 UNION ALL 사용해야 함
2) UNION 예
SELECT DEPTNO, DNAME
FROM DEPT
UNION
SELECT DEPTNO, JOB
FROM EMP;- DEPT 테이블
DEPTNO | DNAME |
10 | ACCOUNTING |
20 | RESEARCH |
30 | SALES |
40 | OPERATIONS |
- EMP 테이블
ENAME | JOB | DEPTNO |
SMITH | CLERK | 20 |
ALLEN | SALESMAN | 30 |
WARD | SALESMAN | 30 |
JONES | MANAGER | 20 |
MARTIN | SALESMAN | 30 |
BLAKE | MANAGER | 30 |
CLARK | MANAGER | 10 |
SCOTT | ANALYST | 20 |
KING | PRESIDENT | 10 |
TURNER | SALESMAN | 30 |
ADAMS | CLERK | 20 |
JAMES | CLERK | 30 |
FORD | ANALYST | 20 |
MILLER | CLERK | 10 |
- 쿼리 수행 결과
DEPTNO | DNAME |
10 | ACCOUNTING |
20 | RESEARCH |
30 | SALES |
40 | OPERATIONS |
20 | CLERK |
30 | SALESMAN |
20 | MANAGER |
30 | MANAGER |
10 | MANAGER |
20 | ANALYST |
10 | PRESIDENT |
30 | CLERK |
10 | CLERK |
2️⃣ UNION ALL 연산자
1) UNION ALL 연산자
- 두 SELECT문의 결과 집합을 결합하고, 중복된 행도 모두 포함
- UNION과 유사하지만, 중복된 행도 모두 포함한다는 점에서 다름
2) UNION ALL 예
SELECT DEPTNO, DNAME
FROM DEPT
UNION ALL
SELECT DEPTNO, JOB
FROM EMP;DEPTNO | DNAME |
10 | ACCOUNTING |
20 | RESEARCH |
30 | SALES |
40 | OPERATIONS |
20 | CLERK |
30 | SALESMAN |
30 | SALESMAN |
20 | MANAGER |
30 | SALESMAN |
30 | MANAGER |
10 | MANAGER |
20 | ANALYST |
10 | PRESIDENT |
30 | SALESMAN |
20 | CLERK |
30 | CLERK |
20 | ANALYST |
10 | CLERK |
3️⃣ INTERSECT 연산자
1) INTERSECT 연산자
- 두 SELECT문의 결과 집합을 결합에서 공통된 행만 반환 (교집합)
2) INTERSECT 예
SELECT DEPTNO
FROM EMP
INTERSECT
SELECT DEPTNO
FROM DEPT; DEPTNO |
10 |
20 |
30 |
➡️ EMP 테이블에 DEPTNO 40 없음
4️⃣ MINUS / EXCEPT 연산자
1) MINUS / EXCEPT 연산자
- 첫 번째 SELECT문의 결과 집합에서 두 번째 SELECT문의 결과 집합에 없는 행만 반환 (차집합)
- MINUS / EXCEPT는 동일한 기능
2) MINUS / EXCEPT 예
SELECT DEPTNO
FROM DEPT
MINUS
SELECT DEPTNO
FROM EMP; DEPTNO |
40 |
➡️ DEPTNO 40은 DEPT(첫 번째)에는 있지만 EMP(두 번째)에는 없음
Share article