본문 바로가기
02_STUDY/SQLD

SQL 자격검정 실전문제 풀이 해설 노랭이 73번, 77번, 80번 (P.84,87, 90)

by zestlumen 2023. 3. 30.

2021-11-27 06:20:35

 

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

SELECT 1 에서 1은 의미 없음, NOT EXISTS나 EXISTS는 조건에 대한 참 거짓 판별 조건으로

SELECT에서 어떤 값이 나오더라도 조건 자체 수행되기 때문에 테이블에서 불필요한 칼럼 가져와

성능적 부하를 주지 않기 위해 상수값을 적음. (1도 되고 X도 되고 ABC도 됨)

 

 

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

SQL문은 게시판 T에서 사용여부 Y인 것만 추출해서

게시글 테이블에서 삭제 여부가 N인 것과 아닌 것 출력

ANSI 문장변형 위해 INNER 쪽 테이블에

조건절 ON 함께 위치시켜야 정상적 OUTER JOIN수행


② OUTER 대상 되는 테이블이 ON절에 위치, 원하는 결과 출력 X,

게시글 테이블에서 삭제 여부가 'N'인 것만 읽어 들이고,

게시판 테이블의 데이터를 모두 출력하되 사용 여부가 'Y'인 것에 대해

게시글에서 읽은 데이터와 아우터 조인 수행

 

③ 게시판 테이블에서 사용여부 'Y'인 것 읽고

게시글 테이블에서 삭제 여부 'N'인 것을 읽어 들여 OUTER 조인

 

OUTER JOIN 기준 아닌 쪽은 (+)붙인다. 상수 조건에도

A = B(+)는 A LEFT JOIN B 

A OUTER JOIN은 조건 만족하지 않아도 기준 집합 유지, 비교되는 조건 NULL로 채움

ON 절은 조인 조건, WHERE 절은 필터 조건

(+) 여부에 따른 위치 조건

B. 삭제여부 = 'N' → WHERE

B. 삭제여부(+) = 'N' → ON

'N'인 것만 조인, 조인 실패는 공란으로 남겨둠

 

 

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

① 서비스와 서비스이용은 1:N 관계이므로

서비스 테이블에서 서비스 ID는 UNIQUE이지만

서비스이용 테이블에서 ID 여러 번 반복될 수 있음.

그러므로 SELECT B. 서비스ID 부분이 다른 결과를 도출할 수 있음.