SubQuery

배쨈·2023년 8월 22일
0

SQL

목록 보기
6/9

메인쿼리 안에, 하나의 쿼리가 더 존재하는 모양

  • Subquery의 위치에 따라 명칭을 달리한다.

스칼라 서브쿼리 (Scalar Subquery)

  • SELECT절에 서브쿼리가 존재
  • 컬럼이 올 수 있는 대부분의 위치에 사용 가능
    - UPDATE의 SET, ORDER BY
  • 컬럼 대신 사용되므로, 반드시 하나의 값만을 반환해야 한다.
SELECT 컬럼1,
	( SELECT ~
      FROM ~
      WHERE ~
    ),
    컬럼 3 , 컬럼 4
FROM 테이블 ;

인라인 서브쿼리 (Inline Subquery)

  • FROM절에 서브쿼리가 존재
SELECT 컬럼1, 컬럼2, 컬럼3, ... 
FROM 테이블1 example1, (
	SELECT * ,
    FROM ~
    ) example2 ;

중첩 서브쿼리 (Nested Subquery)

  • WHERE절, HAVING절에 서브쿼리가 존재

메인 쿼리와의 관계에 따른 분류

  • 연관 서브쿼리 : 메인 쿼리의 컬럼이 포함된 서브쿼리
  • 비연관 서브쿼리 : 메인 쿼리의 컬럼이 포함되지 않은 서브쿼리

반환 데이터 형태에 따른 분류

  • 단일 행 서브쿼리 : 서브쿼리가 1건 이하의 데이터를 반환
    • 단일행 비교 연산자 =,<,>,<=,>=,<>와 함께 사용
  • 다중 행 서브쿼리 : 서브 쿼리가 2건 이상의 데이터를 반환
    • 다중행 비교 연산자 IN ALL ANY SOME EXISTS와 함께 사용
  • 다중 컬럼 서브쿼리 : 서브 쿼리가 여러 컬럼의 데이터를 반환
profile
빵상빵상

0개의 댓글