문제
다음 [조건]에 부합하는 SQL문을 작성하고자 할 때, [SQL문]의 빈칸에 들어갈 내용으로 옳은 것은? (단, '팀코드' 및 '이름'은 속성이며, '직원'은 테이블이다.)
[조건] 이름이 '정도일'인 팀원과 소속된 팀코드를 이용하여 해당 팀에 소속된 팀원들의 이름을 출력하는 SQL문 작성
[SQL문]
① WHERE 이름 = '정도일' ② SELECT 팀코드 FROM 이름 WHERE 직원 = '정도일' ③ WHERE 직원 = '정도일' ④ SELECT 팀코드 FROM 직원 WHERE 이름 = '정도일'
정답
4번
해설
정답: 4. 이름이 '정도일'인 직원의 팀코드를 구하는 부속 질의(subquery)가 들어가야 하므로 SELECT 팀코드 FROM 직원 WHERE 이름 = '정도일'이 옳다. 이 결과 팀코드와 같은 팀의 모든 이름이 출력된다.
오답 풀이
- 1번: 부속 질의 자리에 WHERE 절만 오면 팀코드 값을 구하는 SELECT가 없어 문법에 맞지 않는다.
- 2번: FROM 이름, WHERE 직원으로 테이블·속성이 뒤바뀌어 틀렸다.
- 3번: 직원은 테이블명이므로 WHERE 조건 속성이 될 수 없어 틀렸다.
- 4번: '정도일'의 팀코드를 반환하는 올바른 부속 질의이므로 정답이다.
보충 개념 부속 질의(subquery)는 WHERE 절의 비교 대상 값을 반환하며, 바깥 질의는 그 값으로 조건을 평가한다.