개발로그필름

[SQL] UNION 이랑 UNION ALL 의 차이 본문

SQL

[SQL] UNION 이랑 UNION ALL 의 차이

yuullog 2025. 8. 21. 22:07
728x90
반응형
SMALL

 

UNION

  • 결과에서 중복된 행을 제거
  • 즉, 집합 연산처럼 “유일한 값”만 남긴다
  • 그래서 내부적으로 정렬(sort) & 중복 제거(distinct) 과정이 필요 → 성능이 느릴 수 있음

 

예시:

SELECT 1 AS num
UNION
SELECT 1 AS num
UNION
SELECT 2 AS num;

 

👉 결과

num
---
1
2

 

 

 

 

UNION ALL

  • 결과에서 중복된 행도 그대로 남긴다
  • 정렬/중복 제거 과정이 없어서 빠름.
  • 단, 원하지 않는 중복이 있을 수 있음.
SELECT 1 AS num
UNION ALL
SELECT 1 AS num
UNION ALL
SELECT 2 AS num;
num
---
1
1
2

 

 

 

구분
UNION UNION ALL
중복 제거 O X
정렬 여부 있음 없음
속도 느림 빠름
사용 상황 중복 필요 없을 때 중복도 포함해야 할 때

 

 

* 합치는 select문의 컬럼은 모두 동일해야한다!

반응형
LIST

'SQL' 카테고리의 다른 글

[SQL] DATETIME과 TIMESTAMP의 차이점: 언제, 어떻게 사용할까?  (0) 2025.03.14
[SQL] ON DELETE RESTRICT  (0) 2025.03.12
[SQL] VIEW  (0) 2025.03.11
[SQL] SELECT문 실행 순서  (0) 2025.03.11
[SQL] SUBSTRING() 함수  (0) 2025.03.10
Comments