문제
다음 중 '학번', '이름', '전화번호' 필드로 동일하게 구성되어 있는 [재학생] 테이블과 [졸업생] 테이블을 통합하여 나타내는 쿼리문으로 옳은 것은?
① Select 학번, 이름, 전화번호 From 재학생, 졸업생 Where 재학생.학번 = 졸업생.학번; ② Select 학번, 이름, 전화번호 From 재학생 JOIN Select 학번, 이름, 전화번호 From 졸업생; ③ Select 학번, 이름, 전화번호 From 재학생 OR Select 학번, 이름, 전화번호 From 졸업생; ④ Select 학번, 이름, 전화번호 From 재학생 UNION Select 학번, 이름, 전화번호 From 졸업생;
정답
4번
해설
정답: 4. 동일한 구조의 두 테이블 결과를 위아래로 통합하려면 UNION을 사용한다. UNION은 두 SELECT 결과를 합치면서 중복 행을 제거한다.
오답 풀이
- 1번: 학번이 같은 행만 가로로 결합(조인)하는 것으로, 두 집합을 통합하는 것이 아니다.
- 2번: JOIN은 두 SELECT 문을 직접 잇는 구문이 아니라 테이블을 가로로 결합하는 연산이라 문법이 잘못되었다.
- 3번: OR은 조건 연산자이지 두 쿼리 결과를 통합하는 집합 연산자가 아니다.
- 4번: 두 SELECT 결과를 통합하는 것은 UNION이므로 옳다.
보충 개념 UNION은 두 결과 집합을 합치며 중복을 제거하고, UNION ALL은 중복을 포함해 모두 합친다. 통합하려면 두 SELECT의 열 개수와 데이터 형식이 일치해야 한다.