[sql] SQL 데이터베이스에서 서브쿼리 사용하기.

SQL에서 서브쿼리(subquery)는 쿼리 안에 또 다른 쿼리를 포함하며, 외부 쿼리의 조건식으로 사용되는 쿼리를 말합니다. 서브쿼리는 주로 SELECT, INSERT, UPDATE, DELETE 문에서 사용됩니다.

서브쿼리의 종류

단일 행 서브쿼리

단일 행 서브쿼리는 결과로 단일 행을 반환합니다. 일반적으로 비교 연산자와 함께 사용되어 외부 쿼리의 조건식으로 활용됩니다.

예:

SELECT employee_name
FROM employees
WHERE salary > (SELECT AVG(salary) FROM employees);

다중 행 서브쿼리

다중 행 서브쿼리는 결과로 여러 행을 반환합니다. 이러한 서브쿼리는 IN, ANY, ALL과 함께 사용되어 외부 쿼리의 조건식으로 활용됩니다.

예:

SELECT department_name
FROM departments
WHERE department_id IN (SELECT department_id FROM employees WHERE salary > 50000);

다중 열 서브쿼리

다중 열 서브쿼리는 결과로 여러 열을 반환합니다. 일반적으로 비교 연산자나 EXISTS와 함께 사용됩니다.

예:

SELECT *
FROM employees
WHERE (department_id, job_id) IN (SELECT department_id, job_id FROM job_history);

서브쿼리 사용 시 주의사항

서브쿼리를 활용하여 데이터베이스를 유연하게 조작할 수 있지만, 과용은 오히려 쿼리의 가독성을 낮출 수 있습니다. 적절하게 사용하여 데이터베이스 쿼리를 효율적으로 작성해야 합니다.

참고 문헌: MySQL 공식 문서