문제
테이블 R과 S에 대해 다음 SQL문이 실행되었을 때, 실행결과로 옳은 것은?
<그림>
<결과 보기>
- ① 1
- ② 3, 2
- ③ 1, 3
- ④ 1, 3, 1, 2
① 1 ② 3, 2 ③ 1, 3 ④ 1, 3, 1, 2
정답
4번
해설
정답: 4. UNION ALL은 두 SELECT 결과를 중복 제거 없이 그대로 합친다. SELECT A FROM R은 1, 3을, SELECT A FROM S는 1, 2를 반환하므로 결과는 1, 3, 1, 2가 된다.
오답 풀이
- 1번: 1만 나오는 결과가 아니다.
- 2번: 3, 2는 일부만 포함한 잘못된 결과이다.
- 3번: 1, 3은 UNION(중복 제거)일 때의 결과에 가깝고 UNION ALL 결과가 아니다.
- 4번: R의 A값(1, 3)과 S의 A값(1, 2)을 중복 포함해 합친 1, 3, 1, 2가 정답이다.
보충 개념 UNION은 중복을 제거한 합집합, UNION ALL은 중복을 포함한 합집합을 반환한다.