서브쿼리
서브쿼리의 위치에 따른 명칭
| 명칭 | 사용 위치 |
|---|---|
| 스칼라 서브쿼리 | SELECT 절 에 있는 서브쿼리
select col1
, (select user from dual) user -- 스칼라 쿼리
, ....
|
| 인라인 뷰 | FROM절에 있는 서브쿼리
select ....
from (select *
from tb_xxx) -- 인라인 뷰
|
| 서브쿼리 | WHERE절에 있는 서브쿼리
select ....
from tb_a
where col1 in (select col1
from tb_xxx) -- 서브쿼리
|
서브쿼리의 반환 값에 따른 서브쿼리 종류
- - 단일 행 서브쿼리(Single-Row Subquery) : 서브쿼리의 결과가 1행
- - 다중 행 서브쿼리(Multiple-Row Subquery) : 서브쿼리의 결과가 여러 행
- - 다중 컬럼 서브쿼리(Multi-Column Subquery) : 서브쿼리의 결과가 여러 컬럼
스칼라 서브쿼리(Scala Subquery)
- - SELECT문에서 사용하는 서브쿼리로 1행만 반환
- - 입력값(메인쿼리와 조인하는 컬럼)의 Distinct한 종류가 적을수록 캐싱 효과가 좋음
- - 메인쿼리의 값을 서브쿼리가 사용하고, 서브쿼리의 값을 받아서 메인쿼리가 계산하는 구조의 쿼리