기출문제 문제형식으로 풀기👇👇
SQLD기출문제😎
https://quizlet.com/_al0e64?x=1jqt&i=24fjuj
계층형 질의 문제풀이 SQLD 34회 19번
1번
START WITH N2 IS NULL : n2가 null인 것이 루트이다 (1, NULL, A, NULL)
CONNECT BY PRIOR N1 = N2 : 이전 N1과 현재 N2가 같은 모든 행을 가져온다. (모든 행)
WHERE N1 = 4 : 선택된 행 중 N1이 4인 것 (4, 2, D, B)
2번
START WITH C2=B : C2가 B인 것이 루트이다 (4, 2, D, B)
CONNECT BY PRIOR N1 = N2 AND C2 <> D : 이전 N1과 현재 N2가 같은 모든 행을 가져오면서 C2값이 D가 아니어야한다.
하지만 C2값이 D가 되면서 종료된다. (4, 2, D, B)
3번
START WITH C1=B : C1이 B인 것이 루트 (2, 1, B, A)
CONNECT BY PRIOR N1 = N2 ADN PRIOR C2 = B : 이전 N1값과 현재 N2가 같은 모든 행을 가져오면서 이전 C2값이 B이어야 한다.
2로 연결되어 (4, 2, D, B)로 이동 가능했으나, 이전 행의 C2값을 확인했더니 A이어서 이동 불가!!!
가져올 수 있는 행은 (2, 1, B, A)
4번
START WITH N1=2 : N1이 2인 것이 루트
CONNECT BY PRIOR N1 = N2 AND PRIOR N1 = 2 : 이전 N1과 현재 N2가 같은 모든 행을 가져오면서 이전 N1값이 2이어야 한다.
2로 연결되어 (4, 2, D, B)로 이동 가능하면서, 이전 행의 N1값을 확인했더니 2이어서 이동 가능!
4로 연결되어 (5, 4, E, D)로 이동 가능했으나, 이전 행의 N1값을 확인했더니 4이어서 이동 불가!
가져올 수 있는 행은 (2, 1, B, A), (4, 2, D, B)
WHERE C1 <> B : 가져온 행 중 C1값이 B가 아닌 것 (4, 2, D, B)
=> 정답은 3번
조인 문제풀이 SQLD 34회 26번
(+) 는 OUTER JOIN을 의미하며, 기호가 안붙은 쪽이 기준이 된다!
WHERE T1.COL1 LEFT JOIN T2.COL1 AND T2.COL1 LEFT JOIN T3.COL1 AND T3.COL1 INNER JOIN T4.COL1
=> 정답 1
계층형 질의 문제풀이 SQLD 30회 45번
START WITH 상위계층번호 IS NULL : (1, NULL), (2, NULL) 이 루트이다.
CONNECT BY 계층번호 = PRIOR 상위계층번호 : 현재의 계층번호와 이전의 상위계층번호가 같은 모든 행을 가져온다
(4, 1)일때 계층번호는 4, 이전 상위계층번호는 NULL => 해당없음
(5, 1)일때 계층번호는 5, 이전 상위계층번호는 1 => 해당없음
(6, 2)일때 계층번호는 6, 이전 상위계층번호는 1 => 해당없음
(7, 2)일때 계층번호는 7, 이전 상위계층번호는 2 => 해당없음
(8, 4)일때 계층번호는 8, 이전 상위계층번호는 2 => 해당없음
(9, 5)일때 계층번호는 9, 이전 상위계층번호는 4 => 해당없음
(10, 6)일때 계층번호는 10, 이전 상위계층번호는 6 => 해당없음
(11, 7)일때 계층번호는 11, 이전 상위계층번호는 7 => 해당없음
가져올 수 있는 행은 루트행(1, NULL), (2, NULL)밖에 없다