[sql] 서브쿼리를 사용한 데이터 조회

서브쿼리란 SQL 문장 안에 포함된 또 다른 SQL 문장으로, 외부 쿼리의 조건에 따라 결과가 동적으로 변하는 쿼리입니다.

서브쿼리의 장점

서브쿼리를 사용하면 한 번의 쿼리로 여러 테이블 간의 데이터를 조회하고 연산할 수 있습니다. 또한 복잡한 연산이나 필터링을 쉽게 수행할 수 있어 SQL 문을 간결하게 유지할 수 있습니다.

서브쿼리의 종류

  1. 단일 행 서브쿼리 : 서브쿼리의 결과가 항상 한 개의 행을 반환하는 경우에 사용됩니다.
  2. 다중 행 서브쿼리 : 서브쿼리의 결과가 여러 개의 행을 반환하는 경우에 사용됩니다.
  3. 다중 열 서브쿼리 : 서브쿼리의 결과가 여러 개의 열을 반환하는 경우에 사용됩니다.

단일 행 서브쿼리 사용 예시

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

위의 예시에서는 employees 테이블에서 평균 급여보다 높은 급여를 받는 직원의 이름과 급여를 조회하고 있습니다.

다중 행 서브쿼리 사용 예시

SELECT customer_name
FROM customers
WHERE customer_id IN (SELECT customer_id FROM orders);

이 예시에서는 orders 테이블에 있는 주문을 한 고객의 이름을 조회하고 있습니다.

다중 열 서브쿼리 사용 예시

SELECT product_name
FROM products
WHERE (product_id, category_id) IN (SELECT product_id, category_id FROM inventory WHERE quantity > 0);

위의 예시는 재고가 있는 상품의 이름을 조회하는 쿼리입니다.

서브쿼리를 사용하면 복잡한 데이터베이스 조회 및 조작 작업을 보다 쉽게 수행할 수 있으며, 올바르게 사용하면 데이터 처리에 있어 유용한 도구가 될 수 있습니다.

데이터베이스 서브쿼리 사용에 대한 자세한 내용은 Oracle Docs에서 확인할 수 있습니다.