다음 [결과]가 나오도록 SQL의 ( ㉠ )에 들어갈 구문으로 옳은 것… | [SQLD] SQL 개발자 기출유형 모의고사 1회 상세 페이지
1[SQLD] SQL 개발자 기출유형 모의고사 1회
다음 [결과]가 나오도록 SQL의 ( ㉠ )에 들어갈 구문으로 옳은 것은?[사원]
| 사원번호 | 사원명 | 부서코드 | 지역 |
|---|---|---|---|
| 1 | 강민서 | D1 | 서울 |
| 2 | 윤재희 | D2 | 부산 |
| 3 | 서도현 | D1 | 부산 |
| 4 | 임채원 | D3 | 서울 |
| 5 | 조하린 | (null) | 서울 |
[부서]
| 부서코드 | 부서명 | 지역 |
|---|---|---|
| D1 | 영업 | 서울 |
| D2 | 개발 | 부산 |
| D3 | 인사 | 대전 |
SELECT 부서코드, E.사원명, D.부서명 FROM 사원 E ( ㉠ ) ORDER BY 부서코드, E.사원명;
[결과]
| 부서코드 | 사원명 | 부서명 |
|---|---|---|
| D1 | 강민서 | 영업 |
| D1 | 서도현 | 영업 |
| D2 | 윤재희 | 개발 |
| D3 | 임채원 | 인사 |
1
NATURAL JOIN 부서 D
2
CROSS JOIN 부서 D
3
JOIN 부서 D ON E.부서코드 = D.부서코드
4
JOIN 부서 D USING (부서코드)
해설
USING (부서코드)는 지정한 열만 등가 조인하고 그 열을 하나로 합쳐 주므로, 접두어 없는 부서코드를 SELECT·ORDER BY 에 쓸 수 있다.부서코드만으로 묶이면 서도현(부산)도 D1 영업과 연결되어 4행이 된다. 부서코드가 NULL 인 조하린은 등가 조건을 만족하지 못해 빠진다.
- NATURAL JOIN 은 동명 열인 지역까지 비교해 강민서·윤재희 2행만 남는다.
- ON 조인은 양쪽 부서코드가 모두 남아 접두어 없는 부서코드가 모호하다는 오류가 난다.
- CROSS JOIN 도 부서코드가 두 테이블에 있어 같은 모호성 오류가 난다.
오류나 개정된 내용이 보이면 알려주세요