SQLD(SQL 개발자) 기출 · 서브쿼리
다음 중 아래 SQL에 대한 설명으로 가장 부적절한 것은?
본문)
[SQL]
SELECT B.사원번호, B.사원명, A.부서번호, A.부서명
, (SELECT COUNT(*) FROM 부양가족 Y WHERE
Y.사원번호 = B.사원번호) AS 부양가족수
FROM 부서 A, (SELECT *
FROM 사원
WHERE 입사년도 = '2014') B
WHERE A.부서번호 = B.부서번호
AND EXISTS (SELECT 1 FROM 사원 X WHERE X.부서번호 =
A.부서번호);
이 문제 풀어보기
정답 및 해설 보기
정답: 2번
2014년에 입사한 사원들의 사원, 부서 정보와 부양가족수를 추출하는 SQL이다.
SELECT 절에 사용된 서브쿼리는 단일행 연관 서브쿼리로 JOIN 으로도 변경이 가능하며, FROM
절에 사용된 서브쿼리는 Inline View 또는 Dynamic View 이고, WHERE 절에 사용된 서브쿼리는
다중행 연관 서브쿼리 이다.
②번 보기의 경우 이미 FROM절에 Inline View로 사원 테이블의 입사년도 조건을 명시하였으므로
WHERE 절의 EXISTS 조건은 부서와 사원 테이블간의 JOIN 조건에 의해 결과에 어떠한 영향도 미치
지 못하므로 삭제되어도 무방하다.
SELECT 절에 사용된 서브쿼리는 단일행 연관 서브쿼리로 JOIN 으로도 변경이 가능하며, FROM
절에 사용된 서브쿼리는 Inline View 또는 Dynamic View 이고, WHERE 절에 사용된 서브쿼리는
다중행 연관 서브쿼리 이다.
②번 보기의 경우 이미 FROM절에 Inline View로 사원 테이블의 입사년도 조건을 명시하였으므로
WHERE 절의 EXISTS 조건은 부서와 사원 테이블간의 JOIN 조건에 의해 결과에 어떠한 영향도 미치
지 못하므로 삭제되어도 무방하다.