SQL 심화 9~10
서브쿼리
(1) 하나의 SQL문 안에 포함되어 있는 또 다른 SQL문을 말한다.
(2) 메인쿼리가 서브쿼리를 포함하는 종속적인 관계이다.
(3) 서브쿼리는 메인쿼리의 컬럼 사용 가능
(4) 메인쿼리는 서브쿼리의 컬럼 사용 불가
서브쿼리 사용 시 주의점
(1) 서브쿼리는 괄호로 묶어서 사용
(2) 단일 행 혹은 복수 행 비교 연산자와 함께 사용 가능
(3) 서브쿼리에서는 order by를 사용할 수 없다.
서브쿼리의 종류
(1) 스카라 서브쿼리 : select절에 사용
(2) 인라인 뷰 : from절에 사용
(3) 중첩 서브쿼리 : where절에 사용
스카라 서브쿼리
(1) 결과는 하나의 컬럼이어야 한다.
(2) 문법
select column1, (select column2 from tablename2 where condition)
from tablename1
where condition;
중첩 서브쿼리
(1) 싱글 로우 : 하나의 행을 검색하는 서브쿼리
(2) 멀티플 로우 : 하나 이상의 행을 검색하는 서브쿼리
(3) 멀티플 컬럼 : 하나 이상의 열을 검색하는 서브쿼리
(4) 서브쿼리가 비교연산자와 사용되는 경우, 서브쿼리의 검색 결과는 한 개의 결과값을 가져야 한다.
싱글 로우
(1) 예시
select name from celeb where name = (select host from snl_show where id=1);
(2) 만약 where절 id=1을 빼면 에러가 난다.
서브쿼리 결과 중에 포함될 때
(1) where절에 in과 함께 쓴다.
서브쿼리 결과에 값이 있으면 반환
(1) where절에 exists와 함께 쓴다.
서브쿼리 결과 중에 최소한 하나라도 만족하면 (비교연산자 사용)
(1) where절에 any와 함께 쓴다.
서브쿼리 결과를 모두 만족하면 (비교연산자 사용)
(1) where절에 all과 함께 쓴다.