본문 바로가기
MySQL

UNION / UNION ALL

by 주연이가 주연이다. 2024. 3. 4.

UNIONUNION ALL의 차이점을 설명하기 위해, 아래와 같은 두 개의 테이블을 가정해봅시다.

테이블 A:

Name
----
John
Anna
Tom

테이블 B:

Name
----
Anna
Tom
Peter

이제 UNION과 UNION ALL을 사용하여 두 테이블을 결합하겠습니다.

  1. UNION 사용
    UNION을 사용하면 두 테이블의 결과를 결합하고 중복된 레코드를 제거합니다. 따라서 결과는 다음과 같습니다.

    SELECT Name FROM A
    UNION
    SELECT Name FROM B;

    결과:

    Name
    ----
    John
    Anna
    Tom
    Peter

    여기서 볼 수 있듯이, 'Anna'와 'Tom'은 두 테이블에 모두 존재하지만, UNION을 사용하였기 때문에 결과에서는 한 번만 나타납니다.

  2. UNION ALL 사용
    반면에 UNION ALL을 사용하면 중복된 레코드를 제거하지 않습니다. 따라서 결과는 다음과 같습니다.

    SELECT Name FROM A
    UNION ALL
    SELECT Name FROM B;

    결과:

    Name
    ----
    John
    Anna
    Tom
    Anna
    Tom
    Peter

    UNION ALL을 사용하였기 때문에, 'Anna'와 'Tom'이 두 번 나타나는 것을 볼 수 있습니다.

이렇게, UNION과 UNION ALL은 두 SELECT 문의 결과를 결합하는 방식에 있어 중요한 차이를 보입니다. UNION은 중복된 레코드를 제거하여 고유한 결과를 반환하는 반면, UNION ALL은 모든 결과를 반환하며 중복을 허용합니다.

728x90
반응형

'MySQL' 카테고리의 다른 글

TIMESTAMPDIFF() 사용하기  (0) 2024.04.07
날짜 관련 함수 정리  (0) 2024.04.04
LIKE 연산자  (0) 2024.03.05
[SQL] JOIN 정리  (0) 2024.01.10
[MySQL] 문법 정리  (0) 2023.12.18