SQL - 문제 미리보기

문제 1671

medium
UNION과 UNION ALL의 차이점으로 올바른 것은?
```sql
-- 쿼리 A
SELECT City FROM Customers
UNION
SELECT City FROM Suppliers;

-- 쿼리 B
SELECT City FROM Customers
UNION ALL
SELECT City FROM Suppliers;
```
A. 두 쿼리는 완전히 동일한 결과를 반환한다
B. UNION은 중복을 제거하고, UNION ALL은 중복을 포함한다
C. UNION ALL이 더 느리다
D. UNION ALL은 문법 오류다

정답: B


UNION vs UNION ALL의 핵심 차이:

UNION (중복 제거):
• DISTINCT 효과: 자동으로 중복된 행 제거
• 느린 성능: 중복 검사를 위한 추가 처리 필요
• 고유한 결과: 각 행이 한 번씩만 나타남

UNION ALL (중복 포함):
• 모든 행 포함: 중복 여부와 상관없이 모든 행 반환
• 빠른 성능: 중복 검사 없이 단순히 결합
• 원본 보존: 원래 데이터의 중복 상태 그대로 유지

실제 예시:

샘플 데이터:
```sql
Customers 테이블 City: Berlin, London, Paris
Suppliers 테이블 City: London, Berlin, Tokyo
```
UNION 결과 (중복 제거):
```txt
City
------
Berlin -- 한 번만 나타남
London -- 한 번만 나타남
Paris
Tokyo
-- 총 4개 행
```
UNION ALL 결과 (중복 포함):
```txt
City
------
Berlin -- Customers에서
London -- Customers에서
Paris -- Customers에서
London -- Suppliers에서 (중복)
Berlin -- Suppliers에서 (중복)
Tokyo -- Suppliers에서
-- 총 6개 행
```

💡 학습 팁

이 문제를 포함한 SQL 과목의 모든 문제를 순차적으로 풀어보세요. 진행상황이 자동으로 저장되어 언제든지 이어서 학습할 수 있습니다.