2-2-2. 집합 연산자

박은서's avatar
Feb 25, 2026
2-2-2. 집합 연산자

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
notion image

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