본문 바로가기

DATABASE/SubQuery : SQL안에 또 다른 SQL

01.서브쿼리

서브쿼리(SUBQUERY)가 뭔데 ?

SQL문을 실행하는 데 필요한 데이터를 추가로 조회하기 위해 SQL문 내부에서 사용하는 SELECT문

 

서브쿼리의 결과 값을 사용하여 기능을 수행하는 영역은 메인쿼리(MAIN QUERY)라고 부른다.

WHERE절 안에 서브쿼리를 넣는 방식을 빈번하게 사용한다.

 

SELECT 조회할 열

FROM  조회할 테이블 

WHERE 조건식 ( SELECT 조회할 열 FROM 조회할 테이블 WHERE 조건식)

 

서브쿼리의 특징

1. 서브쿼리는 연산자와 같은 비교 또는 조회 대상의 오른쪽에 놓이며 괄호( )로 묶어서 사용한다.

2. 특수한 경우를 제외하고, 서브쿼리에서는 ORDER BY를 사용할 수 없다.(메인쿼리는 상관없음) 

3. 서브쿼리의 SELECT절에 명시한 열은 메인쿼리의 비교 대상과 같은 자료형과 같은 개수로 지정해야 한다.

즉 메인쿼리의 비교 대상 데이터가 하나라면 서브쿼리의 SELECT절 역시 같은 자료형인열을 하나 지정해야 한다.

4. 서브쿼리에 있는 SELECT문의 결과 행 수는 함께 사용하는 메인쿼리의 연산자 종류와 호환 가능해야한다.

예를 들어 메인쿼리에 사용한 연산자가 단 하나의 데이터로만 연산이 가능한 연산자라면 서브쿼리의 결과 행 수는 반드시 하나여야 한다.

 

서브쿼리는 메인쿼리의 연산자와 함께 상호 작용하는 방식에 따라 단일행 서브쿼리와 다중행 서브쿼리로 나눈다.