두배로

시험 안내 › SQLD › 필기 개념서

9장. 서브쿼리와 집합 연산자

SQLD (SQL 개발자) 필기 개념서 · 2과목. SQL 기본과 활용 · 절 7개

앱에서 전체 내용 보기

이 장에서 배우는 것

9-1. 서브쿼리의 종류

서브쿼리(Subquery)는 하나의 SQL 문 안에 포함된 또 다른 SELECT 문이다. 괄호로 감싸며, 메인쿼리의 칼럼을 쓸 수 있지만 메인쿼리는 서브쿼리의 칼럼을 직접 쓸 수 없다(인라인 뷰 제외).

9-2. 다중행 연산자 — IN · ANY · ALL · EXISTS

서브쿼리 결과가 0행이면 비교할 값이 없으므로 > ANY(IN 포함)는 모두 거짓(0행), > ALL은 모두 참(전체 행)이 된다. 이때 > (SELECT MAX(…) …)는 MAX가 NULL이라 0행이므로 ALL과 MAX 변환의…

9-3. NOT IN과 NULL 함정

X NOT IN (a, b, NULL)은 X <> a AND X <> b AND X <> NULL이다. X <> NULL은 항상 UNKNOWN이므로 전체가 참이 될 수 없다.

9-4. 연관 서브쿼리

메인쿼리의 현재 행 값을 서브쿼리 안에서 사용한다. 부서 평균은 10번 5000, 20번 1925, 30번 1933.33이다. 10번 부서는 김대표 1명뿐이라 5000 > 5000이 거짓이므로 결과에 없다.

9-5. 위치별 서브쿼리 — 스칼라 · 인라인 뷰 · HAVING · 다중칼럼

다루는 항목: 경영, 개발, 영업

9-6. 뷰(View)

뷰는 실제 데이터를 갖지 않고 SQL 정의만 저장한 가상 테이블이다. 조회 시 뷰 정의가 쿼리에 합쳐져 실행된다.

9-7. 집합 연산자

규칙: ① 각 SELECT의 칼럼 수가 같고 데이터 타입이 호환되어야 한다 ② 결과 칼럼명(헤더)은 첫 번째 SELECT의 것을 쓴다 ③ ORDER BY는 맨 마지막에 한 번만 쓰며 첫 SELECT의 칼럼명·별칭 또는 위치 번호로…

그림·예제·문제와 함께 이어 보기