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

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

[부서]

부서코드부서명
10기획
20영업
30개발
40인사

[직원]

사번이름부서코드급여
101김윤10450
102이솔10280
103박건20320
104최담20350
105정우30250
106조현30260
107한결(null)500

㉠

SELECT D.부서명, E.이름
  FROM 부서 D, 직원 E
 WHERE D.부서코드 = E.부서코드(+)
   AND E.급여(+) >= 300;

㉡

SELECT COUNT(*) FROM 부서 CROSS JOIN 직원;
1
3, 28
2
7, 24
3
5, 28
4
5, 24
해설

㉠은 E.급여(+) >= 300 까지 (+) 가 붙어 LEFT OUTER JOIN 의 ON 조건이 되므로 5행이고, ㉡의 CROSS JOIN 은 4×7=28행이다.

㉠에서 기획은 김윤, 영업은 박건·최담과 결합하고, 급여 300 미만뿐인 개발과 직원이 없는 인사는 직원 열이 NULL 인 한 행씩 남는다.

  • 3행은 급여 조건을 WHERE 필터로 본 결과로, 개발·인사 행이 사라진다.
  • 7행은 급여 조건을 무시하고 부서코드만으로 외부 조인한 결과이다.
  • 24는 부서코드가 NULL 인 직원을 곱에서 뺀 값이나, CROSS JOIN 은 조건 없이 모든 행을 곱한다.

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

이어서 풀어보기

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