SQL 서브쿼리: 유형과 사용법
SQL 서브쿼리는 다른 쿼리 내에 포함되어 있는 쿼리로, 데이터 조작과 분석을 위해 사용된다.
서브쿼리는 메인 쿼리의 조건 생성, 데이터 임시 조직화, 결과에 대한 추가 계산이나 필터링 등에 활용될 수 있다.
서브쿼리란?
- 메인 쿼리 내에 포함되는 쿼리.
- 데이터 처리와 분석을 위한 핵심 도구.
서브쿼리 유형
스칼라 서브쿼리
사용 위치:
SELECT
,WHERE
,HAVING
절.목적: 단일 값을 반환해 비교 연산이나 결과 셋 컬럼 값으로 사용.
예시:모든 직원의 이름과 회사에서 가장 높은 급여를 보여줌.
SELECT 이름, (SELECT MAX(급여) FROM 직원) AS 최대급여 FROM 직원;
인라인 뷰
사용 위치:
FROM
절.목적: 임시 테이블 생성해 복잡한 쿼리 단순화 또는 데이터 재구성.
예시:부서ID 101에 속하면서 급여가 5000 이상인 직원의 이름 조회.
SELECT E.이름 FROM (SELECT * FROM 직원 WHERE 부서ID = 101) AS E WHERE E.급여 > 5000;
중첩 서브쿼리
사용 위치:
WHERE
또는HAVING
절.목적: 다른 쿼리 결과 기반으로 데이터 필터링.
예시:서울에 위치한 부서에 속한 직원들의 이름 조회.
SELECT 이름 FROM 직원 WHERE 부서ID IN (SELECT 부서ID FROM 부서 WHERE 위치 = '서울');
스칼라 서브쿼리 vs. 중첩 서브쿼리
- 스칼라 서브쿼리
- 단일 값 반환.
- 비교 연산자와 함께 사용하여 메인 쿼리의 조건과 비교.
- 중첩 서브쿼리
- 여러 값을 반환할 수 있음.
- 데이터 집합에 대한 비교를 위해
IN
,EXISTS
,ANY
,ALL
등과 함께 사용.
스칼라 서브쿼리는 단일 값을 처리하는 데 초점을 맞추고, 중첩 서브쿼리는 데이터 집합의 비교에 사용된다.
둘 다 WHERE
또는 HAVING
절에 사용될 수 있지만,
스칼라 서브쿼리는 주로 값의 비교에, 중첩 서브쿼리는 데이터 집합의 비교에 활용된다.
반응형
'기타' 카테고리의 다른 글
[SQL] GROUP BY (ROLLUP,CUBE) 이해하기 (0) | 2024.02.26 |
---|---|
[SQL] 정규화와 반정규화 (0) | 2024.02.18 |
[SQL] CASE 문 (0) | 2024.02.02 |
[SQL] INNER JOIN (0) | 2024.02.01 |
ELB - ALB,NLB (0) | 2023.09.02 |