KT에이블스쿨 5기/정보처리기사

[정보처리기사 실기] SQL Union과 Union All 차이와 예시

ryuming 2024. 4. 18. 23:15

[정보처리기사 실기] SQL Union과 Union All차이와 예시

 

sql 관련 시험이에서는 단골문제인

union 과 union all 차이를 물어보는 문제!

작년의 저는 당연히 몰랐습니당^^

  1. Union:
    • Union은 두 개의 쿼리 결과에서 중복된 행을 제거합니다.
    • 즉, 중복된 행은 한 번만 결과에 포함됩니다.
    • Union은 결과 집합에서 유일한 값만을 보장합니다.
  2. Union All:
    • Union All은 중복된 행을 제거하지 않고 모두 결과에 포함시킵니다.
    • 따라서 중복된 행이 결과에 여러 번 나타날 수 있습니다.
    • Union All은 결과 집합에서 중복을 제거하지 않기 때문에 Union보다 처리 속도가 더 빠릅니다.

 


 

예를 들어, 두 개의 테이블에서 동일한 열을 가진 데이터를 추출한다고 가정해보겠습니다.

테이블 A:
ID  | Name
---------
1   | John
2   | Sarah
3   | Emily

테이블 B:
ID  | Name
---------
2   | Sarah
3   | Emily
4   | Michael

 


Union을 사용한 쿼리:

SELECT * FROM 테이블A
UNION
SELECT * FROM 테이블B;


결과:

ID  | Name
---------
1   | John
2   | Sarah
3   | Emily
4   | Michael

 

 

Union All을 사용한 쿼리:

SELECT * FROM 테이블A
UNION ALL
SELECT * FROM 테이블B;

 

결과:

ID  | Name
---------
1   | John
2   | Sarah
3   | Emily
2   | Sarah
3   | Emily
4   | Michael

 

위의 예시에서 Union을 사용하면 Sarah와 Emily가 한 번만 나타나지만, Union All을 사용하면 중복된 값이 그대로 결과에 포함됩니다.