다음 SQL의 결과 행 수는?[환자]환자번호환자명1한서준2오다인3문가람… | [SQLD] SQL 개발자 기출유형 모의고사 6회 상세 페이지

1[SQLD] SQL 개발자 기출유형 모의고사 6회
다음 SQL의 결과 행 수는?

[환자]

환자번호환자명
1한서준
2오다인
3문가람
4배하율

[의사]

의사번호의사명
101권태오
102남시아
103류지안

[진료]

진료번호환자번호의사번호
11101
21102
32(null)
43103
55101
62101
SELECT P.환자명, D.의사명
  FROM 환자 P, 진료 J, 의사 D
 WHERE P.환자번호 = J.환자번호
   AND J.의사번호 = D.의사번호
 ORDER BY J.진료번호;
1
5
2
15
3
6
4
4
해설

세 테이블을 N-1=2개의 등가 조인 조건으로 모두 연결했으므로 환자와 의사 양쪽에 짝이 있는 진료 1·2·4·6의 4행만 남는다.

진료 3은 의사번호가 NULL 이라 의사와 비교가 성립하지 않고, 진료 5는 환자번호 5가 환자 테이블에 없어 빠진다.

  • 의사번호 NULL 행은 등가 조인에서 제외되므로 5가 아니다.
  • 짝이 없는 진료 행이 빠지므로 진료 전체 6이 아니다.
  • 조인 조건이 두 개 모두 있어 카티션 곱 15가 생기지 않는다.

오류나 개정된 내용이 보이면 알려주세요

이어서 풀어보기

[SQLD] SQL 개발자 기출유형 모의고사 6회 50문항 이어서 보기문제·정답·해설을 한 페이지에서 이어서 볼 수 있어요SQLD SQL 개발자 실전 모의고사 암기장 전체 보기