간단명료

서브쿼리 본문

SQL/업무에 바로 쓰는 SQL튜닝 입문

서브쿼리

FeelGoood 2022. 3. 28. 09:26

SELECT, WHERE, ORDER BY 절에 사용하는 서브쿼리를 스칼라서브쿼리라고 한다.
서브쿼리는 GROUP BY 절에는 사용할 수 없다.

SELECT
    (SELECT....) --Scalar Subquery
FROM
    (SELECT....) --Inline View
WHERE
    (SELECT....) --Nested Subquery OR Correlated Subquery(Scalar Subquery)
GROUP BY --사용 불가
ORDER BY
    (SELECT....) --Scalar Subquery

1. WHERE 절 서브쿼리

WHERE 절 서브쿼리(스칼라서브쿼리)에서 메인쿼리 컬럼을 사용하지 않으면 Nested Subquery, 메인쿼리 컬럼을 사용하면 Correlated Subqyery라 한다.

1) Nested Subquery

메인쿼리보다 먼저 동작한다.(단, 서브쿼리와 연산하는 메인쿼리의 컬럼이 인덱스가 존재해야 함)

2) Correlated Subquery

메인쿼리보다 나중에 동작한다.
메인쿼리에서 데이터를 읽고 있는 Row 수 만큼 서브쿼리가 실행된다.

2. Scalar Subquery

1) One Row, One Column

  • 단 하나의 데이터와 하나의 컬럼에 대한 정보를 리턴 한다.
  • 0 건 -> Null
    2 이상 건 -> Error

2) 사용 위치

Select List 항목, 함수의 인자, WHERE절의 조건, ORDER BY 절, CASE 절, CASE 결과절





출처 : EZ Learning - [업무에 바로 쓰는 SQL튜닝 입문] 강의
728x90
반응형

'SQL > 업무에 바로 쓰는 SQL튜닝 입문' 카테고리의 다른 글

NL(Nested Loops) 조인  (0) 2022.03.31
인덱스 활용이 불가능한 경우  (0) 2022.03.26
결합인덱스  (0) 2022.03.26
인덱스  (0) 2022.03.26
옵티마이저  (0) 2022.03.26
Comments