데이터베이스 기초
사원 표(사원번호, 이름, 부서ID)에 4개 행이 있고, 부서ID는 차례로 10, 20, 10, NULL이다. 부서 표(부서ID, 부서명)에는 부서ID가 10, 20, 30인 3개 행이 있다. SELECT 사원.이름, 부서.부서명 FROM 사원 INNER JOIN 부서 ON 사원.부서ID = 부서.부서ID의 결과는 몇 행이 되는가?
- A3행
- B4행
- C12행
정답과 해설 보기
정답: A. 3행
INNER JOIN(내부 조인)은 ON의 조건을 만족하는 행의 조합만 결과로 합니다. 부서ID가 10인 사원 2명은 부서 10의 행과, 부서ID가 20인 사원 1명은 부서 20의 행과 조합되므로 결과는 3행입니다. 부서ID가 NULL인 사원은 NULL과의 비교가 참이 되지 않으므로 어느 부서와도 조인되지 않고 결과에서 사라집니다. 또한 사원이 없는 부서 30도 결과에 나오지 않습니다. 4행은 사원 표의 모든 행을 남기는 왼쪽 외부 조인(사원 LEFT OUTER JOIN 부서)의 경우의 행 수입니다. 12행은 조건 없이 모든 조합을 만드는 CROSS JOIN(곱집합)의 4 × 3 = 12행입니다.