04 | 서브 쿼리
서브 쿼리Sub-Query 란 한 SQL 문장 안에서 보조로 사용되는 또 다른 SELECT문을 의미한다. 최종 결과를 출력하는 쿼리를 메인 쿼리라고 한다면, 이를 위한 중간 단계 혹은 보조 역할을 하는 SELECT문을 서브 쿼리라 한다. 조인 절에서 소개했던 SQL문 중 괄호 안에 들어있는 SELECT문이 바로 서브 쿼리에 속한다. 하나의 SQL문을 기준으로 메인 쿼리를 제외한 나머지 모든 SELECT문을 서브 쿼리로 보면 되며, 따라서 서브 쿼리는 여러 개를 사용할 수 있다.
서브 쿼리는 다양한 형태로 사용된다. 즉 SELECT, FROM, WHERE 절 모두에서 사용할 수 있을 뿐만 아니라, INSERT, UPDATE, MERGE, DELETE 문에서도 사용할 수 있다. 서브 쿼리는 그 특성과 형태에 따라 다음과 같이 구분할 수 있다.
메인 쿼리와의 연관성에 따라
- 연관성 없는(Noncorrelated) 서브 쿼리
- 연관성 있는 서브 쿼리
형태에 따라
- 일반 서브 쿼리(SELECT 절)
- 인라인 뷰(FROM 절)
- 중첩 쿼리(WHERE 절)