다음 SQL 의 실행 결과로 옳은 것은?[고객]고객번호고객명1하늘2바다… | [SQLD] SQL 개발자 기출유형 모의고사 10회 상세 페이지
1[SQLD] SQL 개발자 기출유형 모의고사 10회
다음 SQL 의 실행 결과로 옳은 것은?[고객]
| 고객번호 | 고객명 |
|---|---|
| 1 | 하늘 |
| 2 | 바다 |
| 3 | 구름 |
[계약]
| 계약번호 | 고객번호 | 상품명 |
|---|---|---|
| 10 | 1 | 암보험 |
| 11 | 1 | 실손 |
| 12 | 2 | 운전자 |
| 13 | (null) | 단체상해 |
| 14 | 3 | 치아 |
[청구]
| 청구번호 | 계약번호 | 청구액 |
|---|---|---|
| 100 | 10 | 300 |
| 101 | 11 | 50 |
| 102 | 11 | 80 |
| 103 | 13 | 120 |
SELECT C.고객명, K.상품명, Q.청구액 FROM 고객 C, 계약 K, 청구 Q WHERE C.고객번호 = K.고객번호 AND K.계약번호 = Q.계약번호 ORDER BY Q.청구번호;
1
| 고객명 | 상품명 | 청구액 |
|---|---|---|
| 하늘 | 암보험 | 300 |
| 하늘 | 실손 | 50 |
| 하늘 | 실손 | 80 |
| (null) | 단체상해 | 120 |
2
| 고객명 | 상품명 | 청구액 |
|---|---|---|
| 하늘 | 암보험 | 300 |
| 하늘 | 실손 | 50 |
| 하늘 | 실손 | 80 |
| 바다 | 운전자 | (null) |
3
| 고객명 | 상품명 | 청구액 |
|---|---|---|
| 하늘 | 암보험 | 300 |
| 하늘 | 실손 | 50 |
| 하늘 | 실손 | 80 |
4
| 고객명 | 상품명 | 청구액 |
|---|---|---|
| 하늘 | 암보험 | 300 |
| 하늘 | 실손 | 50 |
해설
세 테이블을 N-1 = 2개의 조인 조건으로 모두 이었고 INNER 조인이라 세 테이블 모두에 짝이 있는 청구 100·101·102 세 행만 남는다.
실손 계약에 청구가 둘이라 하늘·실손이 두 번 나오며, 고객번호가 NULL 인 단체상해와 청구 없는 운전자·치아는 빠진다.
- 2행 표는 한 계약에 청구가 여러 건이면 한 행만 남는다고 보았다.
- 단체상해 행이 있는 표는 NULL 고객번호도 조인된다고 보았다.
- 운전자 행이 있는 표는 OUTER 조인처럼 짝 없는 계약을 남겼다.
오류나 개정된 내용이 보이면 알려주세요