컴퓨터활용능력 1급 필기데이터베이스 일반SQL 하위 질의(IN)난이도 3MCQ

컴퓨터활용능력 1급 필기 SQL 하위 질의(IN) 기출문제 #21153

문제

다음과 같은 <사원> 테이블과 <프로젝트> 테이블을 대상으로, "신제품" 프로젝트에 참여한 사원의 "사원명"을 출력하는 SQL문으로 옳은 것은?

<사원>

사번사원명
101김철수
102이영희
103박민수

<프로젝트>

프로젝트명사번
신제품101
신제품102
유지보수103

① SELECT 사원명 FROM 사원, 프로젝트 WHERE 사번 = (SELECT 사번 FROM 프로젝트 WHERE 프로젝트명 = '신제품'); ② SELECT 사원명 FROM 사원 WHERE 사번 IN (SELECT 사번 FROM 프로젝트 WHERE 프로젝트명 = '신제품'); ③ SELECT 사원명 FROM 프로젝트 WHERE 사번 IN (SELECT 사번 FROM 사원 WHERE 프로젝트명 = '신제품'); ④ SELECT 사원명 FROM 사원 WHERE 프로젝트명 = '신제품';

정답

2

해설

정답: 2. "신제품" 프로젝트의 사번이 둘 이상(101, 102)이므로, 하위 질의가 여러 값을 반환할 수 있는 IN 연산자를 사용해 그 사번에 해당하는 사원명을 조회한다.

오답 풀이

  • 1번: 하위 질의가 여러 행을 반환할 수 있는데 "="를 사용해 오류가 나므로 옳지 않다.
  • 2번: IN으로 여러 사번을 받아 사원명을 조회하므로 옳다.
  • 3번: 사원 테이블에는 프로젝트명 필드가 없으므로 옳지 않다.
  • 4번: 사원 테이블에 프로젝트명 필드가 없어 조건이 성립하지 않으므로 옳지 않다.

보충 개념 하위 질의가 단일 값을 반환하면 "="를, 여러 값을 반환할 수 있으면 IN을 사용한다.

컴퓨터활용능력 1급 필기 데이터베이스 일반 다른 기출문제

컴퓨터활용능력 1급 필기 시험 준비 가이드

이런 문제 20~50개를 한 번에 풀어보세요

매번 새로 추가되는 모의고사 + 오답 자동 복습 + 회차별 실력 추적. 회원가입 후 무료 이용.