서브쿼리(SubQuery) 사용법 & 예제
서브쿼리(SubQuery)는 SQL 문장 안에 포함되어 있는 또 다른 SQL 문장입니다. 이 서브쿼리는 주로 다른 쿼리의 일부분으로 사용되어, 쿼리의 결과를 구하는 데 도움을 줍니다. SQL 문장 안에 작성되어 사용되는데, 대부분의 경우 괄호로 둘러싸여 있습니다.
서브쿼리 종류
서브쿼리는 크게 다음 두 가지로 종류를 나눌 수 있습니다.
- 인라인 뷰 : 서브쿼리가 FROM 절에 사용되는 형태입니다. 인라인 뷰의 결과는 쿼리에서 직접 참조할 수 있습니다.
- 스칼라 서브쿼리 : 서브쿼리가 SELECT 문장 안에서 사용되는 형태입니다. 스칼라 서브쿼리의 결과는 하나의 값을 반환합니다.
서브쿼리 사용법
서브쿼리를 사용하기 위해서는 일반적인 SQL 문장을 작성하는 것과 비슷한 방식으로 작성합니다.
SELECT [컬럼1, 컬럼2, ...]
FROM [테이블]
WHERE [조건] [서브쿼리 조건]
위의 예시에서 [서브쿼리 조건]
에는 일반적인 조건을 작성하는 것과 동일한 방식으로 서브쿼리를 작성하면 됩니다.
서브쿼리 예제
인라인 뷰
인라인 뷰는 서브쿼리가 FROM 절에 사용되는 형태입니다. 예를 들어, 부서(department) 테이블에서 부서별로 평균 급여가 3000 이상인 부서들만 조회하는 쿼리를 작성해보겠습니다.
SELECT *
FROM department
WHERE department_id IN (
SELECT department_id
FROM employee
GROUP BY department_id
HAVING AVG(salary) > 3000
);
위의 예시에서는 employee
테이블의 평균 급여가 3000 이상인 부서들의 department_id
를 서브쿼리로 구하고, 이를 메인 쿼리에서 department
테이블의 department_id
와 매칭하여 결과를 반환합니다.
스칼라 서브쿼리
스칼라 서브쿼리는 서브쿼리가 SELECT 문장 안에서 사용되는 형태입니다. 예를 들어, 모든 사원 중에서 가장 높은 급여를 받는 사원의 정보를 조회하는 쿼리를 작성해보겠습니다.
SELECT *
FROM employee
WHERE salary = (
SELECT MAX(salary)
FROM employee
);
위의 예시에서는 employee
테이블에서 가장 높은 급여를 스칼라 서브쿼리로 구하고, 이를 메인 쿼리에서 급여와 매칭하여 결과를 반환합니다.
전체 내용 정리
위의 포스팅에서는 서브쿼리의 개념과 사용법에 대해 알아보았습니다. 서브쿼리는 주로 인라인 뷰와 스칼라 서브쿼리 두 가지 형태로 사용되며, 각각 FROM 절과 SELECT 문장 안에서 사용됩니다. 서브쿼리는 일반적인 SQL 문장을 작성하는 것과 비슷한 방식으로 사용할 수 있으며, 주로 다른 쿼리의 일부분으로 사용하여 쿼리의 결과를 구하는 데 활용됩니다.
댓글