SQL 마스터 가이드 (2): 서브쿼리의 종류와 활용 패턴
|
1 min read
하나의 질의 안에 포함된 또 다른 질의인 서브쿼리의 다양한 형태(스칼라, 연관, 다중 행 등)와 각각의 실행 특징을 정리합니다.
1. 서브쿼리의 위치에 따른 분류
- 스칼라 서브쿼리 (Scalar Subquery): 절에 위치하며, 단 하나의 값을 반환합니다. 마치 컬럼 하나처럼 취급됩니다.text
SELECT - 인라인 뷰 (Inline View): 절에 위치하며, 가상의 테이블 역할을 합니다.text
FROM - 중첩 서브쿼리 (Nested Subquery): 절이나text
WHERE절에 위치하여 조건을 필터링합니다.textHAVING
2. 반환 데이터 형태에 따른 분류
- 단일 행 서브쿼리: 실행 결과가 단 하나의 행인 쿼리입니다. ,text
=,text<등의 비교 연산자를 사용합니다.text> - 다중 행 서브쿼리: 여러 행을 반환합니다. ,text
IN,textANY,textALL같은 특수 연산자와 함께 써야 합니다.textEXISTS - 다중 컬럼 서브쿼리: 여러 개의 컬럼을 한꺼번에 비교할 때 사용합니다. 주로 메인 쿼리와의 조건을 쌍으로 맞출 때 유용합니다.
3. 메인 쿼리와의 연관성에 따른 분류
- 비연관 서브쿼리: 서브쿼리가 메인 쿼리의 컬럼을 참조하지 않고 독립적으로 실행됩니다.
- 연관 서브쿼리 (Correlated Subquery): 서브쿼리 내에서 메인 쿼리의 컬럼을 참조합니다. 메인 쿼리의 각 행을 읽을 때마다 서브쿼리가 반복 실행되므로 성능에 주의해야 합니다.