[sql] 서브쿼리를 사용한 데이터 필터링

SQL에서 서브쿼리(subquery) 는 다른 SQL 문 내에서 사용되는 중첩된 쿼리로, 데이터를 필터링하거나 조작하는 데에 유용하게 사용됩니다.

서브쿼리를 사용하여 특정 문제에 대한 해결책을 구성하거나, 복잡한 필터링 또는 집계 작업을 수행할 수 있습니다. 예를 들어, 다른 테이블에서 가져온 값을 기반으로 결과를 필터링하거나, 특정 조건에 맞는 값을 찾아낼 수 있습니다.

기본 서브쿼리 구문

SELECT column_name
FROM table_name
WHERE column_name OPERATOR (SELECT column_name FROM table_name WHERE condition);

서브쿼리는 SELECT, INSERT, UPDATE, DELETE 문에서 모두 사용될 수 있습니다. 예를 들어, 다음은 서브쿼리를 사용하여 특정 조건을 만족하는 값을 필터링하는 SELECT 문의 예시입니다.

SELECT employee_name
FROM employees
WHERE department_id = (SELECT department_id FROM departments WHERE department_name = 'Sales');

위의 예시에서, 외부 쿼리는 ‘Sales’ 부서에 속한 직원들의 이름을 검색하기 위해 서브쿼리를 사용하고 있습니다.

서브쿼리의 종류

서브쿼리는 위치와 사용 방법에 따라 다양한 종류로 나뉩니다.

  1. 단일 행 서브쿼리: 서브쿼리가 한 번에 하나의 행만 반환하는 경우 사용됩니다.
  2. 다중 행 서브쿼리: 서브쿼리가 여러 행을 반환하는 경우 사용됩니다.
  3. 스칼라 서브쿼리: 단일 값을 반환하는 서브쿼리이며, 주로 조건식 또는 SELECT 절에서 사용됩니다.

서브쿼리를 적절히 활용하여 데이터를 필터링하고 조작함으로써 SQL 쿼리의 유연성과 강력함을 높일 수 있습니다.

결론

서브쿼리는 SQL에서 데이터를 다룰 때 매우 유용한 도구입니다. 서브쿼리를 사용하여 복잡한 데이터 필터링과 다양한 데이터 연산을 수행할 수 있으며, 이를 통해 쿼리의 재사용성과 유연성을 높일 수 있습니다.


참고 문헌: