Oracle 기준으로 다음 SQL을 실행한 결과 행 수는?[항공편]편명… | [SQLD] SQL 개발자 기출유형 모의고사 4회 상세 페이지
1[SQLD] SQL 개발자 기출유형 모의고사 4회
Oracle 기준으로 다음 SQL을 실행한 결과 행 수는?[항공편]
| 편명 | 출발공항 |
|---|---|
| KE1 | ICN |
| KE2 | GMP |
| OZ3 | ICN |
| 7C4 | PUS |
[예약]
| 예약번호 | 편명 | 상태 |
|---|---|---|
| R1 | KE1 | 확정 |
| R2 | KE1 | 취소 |
| R3 | KE1 | 확정 |
| R4 | OZ3 | 취소 |
| R5 | KE2 | 확정 |
SELECT A.편명, B.예약번호 FROM 항공편 A, 예약 B WHERE A.편명 = B.편명(+) AND B.상태(+) = '확정' ORDER BY A.편명, B.예약번호;
1
5
2
20
3
3
4
6
해설
(+) 는 NULL 이 채워질 쪽(예약)에 붙이며, B.상태(+) = '확정'처럼 필터에도 붙이면
LEFT OUTER JOIN의 ON 절에 A.편명 = B.편명 AND B.상태 = '확정'을 둔 것과 같다.KE1 확정 2행, KE2 1행에 확정 예약이 없는 OZ3·7C4 가 NULL 로 1행씩 보존되어 5행이다.
- 3은 상태 조건의 (+) 를 빠뜨려 내부 조인처럼 된 경우다.
- 6은 상태 조건을 무시해 OZ3 의 취소 예약까지 결합한 값이다.
- 20은 조인 조건이 없는 CROSS JOIN(4×5)의 행 수다.
오류나 개정된 내용이 보이면 알려주세요