10.1 서브쿼리란?
서브쿼리(subquery)란 말 그대로 보조, 하위 쿼리를 의미합니다. 지금까지 봐 온 쿼리는 단 하나의 SELECT 문장으로 이루어져 있었는데, 이를 주 쿼리 혹은 메인쿼리라고 합니다. 서브쿼리는 메인쿼리 안에 있는 또 다른 SELECT 문장을 말합니다. 따라서 서브쿼리를 구성하는 SELECT 문장은 항상 괄호로 둘러싸여 있습니다. 서브쿼리는 SELECT 절에 사용되어 특정 값을 반환할 수도 있고, FROM 절에 사용되어 마치 테이블처럼 사용할 수도 있습니다. 또한, WHERE 절에서 조건 값을 비교하는 데도 사용됩니다.
서브쿼리는 왜 사용하는 것일까요? 글쎄요. 용도가 너무 많아 단 한마디로 말하기 곤란하군요. 그만큼 서브쿼리는 유용한 기능이며 많이 사용됩니다. 구체적으로 서브쿼리의 종류를 살펴봄으로써 서브쿼리의 필요성과 역할에 대해 알아보는 것이 더 수월할 것 같군요.
서브쿼리의 종류는 어떻게 나눌까요? 메인쿼리와의 연관성, 즉 메인쿼리에서 사용된 테이블과 조인이 이루어지는지에 따라 연관성 있는 서브쿼리, 연관성 없는 서브쿼리로 나누기도 하는데, 그보다는 서브쿼리가 사용되는 위치에 따라 구분하는 것이 더 이해하기 쉬울 것 같군요. 따라서 이 책에서는 이 방법대로 구분하여 서브쿼리에 어떤 것이 있는지 하나씩 살펴보도록 하죠.