inblog logo
|
DailyCoding
    SQLD

    2-2-2. 집합 연산자

    박은서's avatar
    박은서
    Feb 25, 2026
    2-2-2. 집합 연산자
    Contents
    1. 집합 연산자 개요1️⃣ 집합 연산자 기초 개념2️⃣ 집합 연산자 종류2. 집합 연산자 종류1️⃣ UNION 연산자2️⃣ UNION ALL 연산자3️⃣ INTERSECT 연산자4️⃣ MINUS / EXCEPT 연산자

    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
    Contents
    1. 집합 연산자 개요1️⃣ 집합 연산자 기초 개념2️⃣ 집합 연산자 종류2. 집합 연산자 종류1️⃣ UNION 연산자2️⃣ UNION ALL 연산자3️⃣ INTERSECT 연산자4️⃣ MINUS / EXCEPT 연산자

    DailyCoding

    RSS·Powered by Inblog