Oracle 기준으로 다음 ㉠의 결과 행 수와 ㉡의 결과 값을 순서대로… | [SQLD] SQL 개발자 기출유형 모의고사 7회 상세 페이지

1[SQLD] SQL 개발자 기출유형 모의고사 7회
Oracle 기준으로 다음 ㉠의 결과 행 수와 ㉡의 결과 값을 순서대로 나열한 것은?

[강좌]

강좌번호강좌명
1국어
2수학
3영어

[수강신청]

학생번호강좌번호
1011
1021
1032
1044
105(null)

㉠

SELECT R.학생번호, C.강좌명
  FROM 강좌 C, 수강신청 R
 WHERE C.강좌번호(+) = R.강좌번호;

㉡

SELECT COUNT(*)
  FROM 강좌 C CROSS JOIN 수강신청 R
 WHERE C.강좌번호 <> R.강좌번호;
1
3, 12
2
5, 9
3
5, 12
4
4, 9
해설

㉠은 (+) 가 강좌 쪽에 붙어 수강신청이 기준인 외부 조인(수강신청 LEFT OUTER JOIN 강좌)이므로 5행이고, ㉡은 CROSS JOIN 15행 중 같은 강좌 3쌍과 NULL 비교 3쌍을 뺀 9이다.

㉠에서 강좌번호가 4 인 신청과 강좌번호가 NULL 인 신청은 강좌명이 NULL 인 채 남고, 신청이 없는 영어는 나오지 않는다.

  • 4, 9 는 (+) 가 붙지 않은 강좌 쪽이 보존된다고 거꾸로 본 결과이다.
  • 5, 12 는 NULL 과의 <> 비교를 참으로 본 경우로, 결과는 UNKNOWN 이라 빠진다.
  • 3, 12 는 ㉠을 등가 조인으로 본 데다 NULL 비교까지 참으로 셈한 결과이다.

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

이어서 풀어보기

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