본문 바로가기
02_STUDY/SQLD

SQL 자격검정 실전문제 풀이 해설 노랭이 82번, 89번, 94번, 96번(P.91,95,99,100)

by zestlumen 2023. 3. 30.

2021-11-27 07:03:21

SQL 자격검정 실전문제 풀이 해설 노랭이 82번

- ORDER BY 1,2 첫번째 칼럼 오름차순 정렬, 첫 번째 칼럼 중복 시 두 번째 칼럼 오름차순 정렬

- UNION ALL 사용 경우 칼럼 ALIAS는 첫 번째 SQL 모듈 기준 표시, 정렬 기준은 마지막 SQL 모듈에 표시

 

SQL 자격검정 실전문제 풀이 해설 노랭이 89번

- CONNECT BY 절은 WHERE절과 다름

- START WITH절에서 필터링된 시작 데이터는 결과 목록에 포함, 이후 CONNECT BY 절에 의해 필터링

- PRIOR 키워드 붙은 쪽 칼럼 - 이전 집합 의미

 

SQL 자격검정 실전문제 풀이 해설 노랭이 94번

COUNT는 행의 수 세기

 

SQL 자격검정 실전문제 풀이 해설 노랭이 96번

②의 경우, 사원 테이블에서 한 로우 가져와 가족 테이블 찾는데, 물론 테이블 행의 순서는 없다고는 하지만 DBMS가 내부적으로 검색할 때 첫 번째고 비교한 행이 <> 만족하면 바로 OK, EXISTS는 뒤에 찾는 행에서 =인 행이 있어도 거기까지 찾지 않고 OK 나오면 서브 쿼리 밖으로 나와버림, 그래서 틀린 결과가 나오게 됨.

EXISTS는 조건에 만족하는 게 하나라도 있을 경우 찾을 때 사용하는 것!

 

NOT EXISTS문

SELECT 이름

FROM 사원

WHERE NOT EXISTS(SELECT*

                           FROM 가족

                           WHERE 사번 = 부양사번)

=NOT IN문

SELECT 이름

FROM 사원

WHERE 사번 NOT IN(SELECT 부양사번

                            FROM 가족) 

=LEFT OUTER JOIN

SELECT 이름

FROM 사원 LEFT OUTER JOIN 가족

ON (사번 = 부양사번)

WHERE 부양사번 IS NULL