언어 문법/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 등으로 필요한 필터링을 적용할 수도 있어.