4. [예시문제] 다음 두 테이블(EMPLOYEES, DEPARTMENTS)을 조인하는 SQL문과 그 결과에 대한 설명으로 옳지 않은 것은? - EMPLOYEES 테이블: 사원번호, 사원명, 부서ID (부서ID는 NULL 가능) - DEPARTMENTS 테이블: 부서ID, 부서명 SELECT E.사원명, D.부서명 FROM EMPLOYEES E LEFT OUTER JOIN DEPARTMENTS D ON E.부서ID = D.부서ID;
- EMPLOYEES 테이블의 모든 사원 정보가 결과에 포함된다.
- 부서ID가 NULL인 사원의 경우, D.부서명 컬럼에는 NULL이 표시된다.
- DEPARTMENTS 테이블에 있지만, 어떤 사원도 소속되어 있지 않은 부서의 정보도 결과에 포함된다.
- FROM 절의 LEFT OUTER JOIN 대신 RIGHT OUTER JOIN으로 바꾸고 테이블 순서를 바꾸지 않으면, 동일한 결과를 얻을 수 있다.
정답: 3번
LEFT OUTER JOIN은 FROM 절에 먼저 명시된 왼쪽 테이블(EMPLOYEES)의 모든 행을 결과에 포함시키고, 오른쪽 테이블(DEPARTMENTS)에서는 매칭되는 행만 가져옵니다. 매칭되는 행이 없으면 오른쪽 테이블의 컬럼은 NULL로 채워집니다. 따라서 1번과 2번 보기는 올바른 설명입니다. 3번 보기는 '어떤 사원도 소속되어 있지 않은 부서의 정보'를 포함한다고 했는데, 이는 오른쪽 테이블(DEPARTMENTS)에만 존재하는 데이터를 의미하므로 LEFT OUTER JOIN에서는 포함되지 않습니다. 이러한 정보는 RIGHT OUTER JOIN에서 포함됩니다. 4번 보기는 LEFT OUTER JOIN과 RIGHT OUTER JOIN의 테이블 순서를 바꾸지 않은 채 변경하면 결과가 달라지므로 틀린 설명입니다. 따라서 3번 보기가 LEFT OUTER JOIN의 특성에 대한 잘못된 설명으로 가장 옳지 않습니다.