언어 문법/SQL
[SQL] UNION 과 UNION ALL 차이
엘리는 코딩 마스터
2025. 3. 24. 09:31
✅ 요약 비교표
구분UNIONUNION ALL
중복 제거 | ✅ 중복 제거 (DISTINCT 자동 적용) | ❌ 중복 제거 안 함 (모든 행 출력) |
속도 | ⏳ 상대적으로 느림 (중복 제거 연산 필요) | ⚡ 더 빠름 (중복 체크 안 하니까) |
용도 | 결과에서 중복을 제거하고 싶을 때 | 결과에 중복을 포함하고 싶을 때 |
📌 예제 데이터
🔹 Table A
IDName
1 | Alice |
2 | Bob |
🔹 Table B
IDName
2 | Bob |
3 | Carol |
📍 1. UNION 예시
SELECT * FROM A UNION SELECT * FROM B;
🔸 결과
IDName
1 | Alice |
2 | Bob |
3 | Carol |
📍 2. UNION ALL 예시
SELECT * FROM A UNION ALL SELECT * FROM B;
🔸 결과
IDName
1 | Alice |
2 | Bob |
2 | Bob |
3 | Carol |
🧠 언제 어떤 걸 써야 할까?
상황추천 연산자
중복 결과를 제거하고 싶다 | UNION |
중복도 포함해서 모두 보고 싶다 | UNION ALL |
성능이 중요한 경우 (대용량) | UNION ALL (빠름) |
💡 실무 팁
- UNION은 내부적으로 DISTINCT가 자동 적용되기 때문에 중복 제거가 필요 없으면 UNION ALL이 더 효율적이야.
- UNION ALL 사용 후 직접 WHERE, GROUP BY, HAVING 등으로 필요한 필터링을 적용할 수도 있어.