서브쿼리(Subquery)는 다른 SQL 쿼리문 내에 포함된 쿼리입니다. 서브쿼리를 사용하여 복잡한 조건을 기반으로 데이터를 검색하거나, 한 쿼리의 결과를 다른 쿼리의 입력으로 사용할 수 있습니다. 서브쿼리는 주로 WHERE, FROM, SELECT 절 내에서 사용될 수 있으며, 단일 행 또는 다중 행 결과를 반환할 수 있습니다. 다음은 서브쿼리를 사용하는 다양한 예제입니다.
관련 예제
예제 1: 단일 행 서브쿼리
SELECT *
FROM Employees
WHERE Salary > (SELECT AVG(Salary) FROM Employees);
모든 직원 중에서 평균 급여보다 더 많은 급여를 받는 직원들을 찾습니다.
예제 2: 다중 행 서브쿼리
SELECT *
FROM Products
WHERE ProductID IN (SELECT ProductID FROM OrderDetails WHERE Quantity > 10);
주문 수량이 10개 이상인 모든 제품을 찾습니다.
예제 3: 존재 여부 판단 (EXISTS)
SELECT *
FROM Suppliers
WHERE EXISTS (SELECT * FROM Products WHERE Products.SupplierID = Suppliers.SupplierID AND Price < 20);
가격이 20 미만인 제품을 공급하는 모든 공급업체를 찾습니다.
예제 4: 서브쿼리를 사용한 정렬 (ORDER BY)
SELECT EmployeeID, (SELECT COUNT(*) FROM Orders WHERE Orders.EmployeeID = Employees.EmployeeID) AS NumberOfOrders
FROM Employees
ORDER BY NumberOfOrders DESC;
직원별로 처리한 주문의 수를 계산하고, 그 결과를 기반으로 직원들을 정렬합니다.
예제 5: 서브쿼리를 사용한 열 값 생성 (SELECT 절)
SELECT EmployeeID, Name, (SELECT MAX(Salary) FROM Salaries WHERE Salaries.EmployeeID = Employees.EmployeeID) AS MaxSalary
FROM Employees;
각 직원별로 받은 최대 급여를 조회합니다.
관련 전문용어 설명
서브쿼리(Subquery): 다른 SQL 쿼리 내부에 포함되는 쿼리문입니다. 결과를 외부 쿼리에 제공합니다.
단일 행 서브쿼리: 하나의 결과만 반환하는 서브쿼리입니다.
다중 행 서브쿼리: 여러 행을 반환할 수 있는 서브쿼리입니다.
EXISTS: 서브쿼리가 하나 이상의 결과를 반환하는지 여부를 확인하는 논리 연산자입니다.
'SQL' 카테고리의 다른 글
인덱스: 인덱스를 생성하여 데이터 검색 성능을 향상시키는 방법. (0) | 2023.12.27 |
---|---|
조인: 두 개 이상의 테이블을 조인하는 INNER JOIN 및 OUTER JOIN 사용법. (0) | 2023.12.27 |
그룹화: GROUP BY를 사용하여 데이터를 그룹화하는 방법. (0) | 2023.12.27 |
집계 함수: SUM, AVG, COUNT, MAX, MIN 등의 집계 함수 사용법. (0) | 2023.12.27 |
문자열 다루기: 문자열 함수를 사용하여 문자열을 다루는 방법. (0) | 2023.12.27 |