※ 서브쿼리
1. 서브쿼리란? - 메인 쿼리문 안에 존재하는 또 다른 쿼리문으로 위치에 따라 다음과 같이 나눠진다.
1-1. 스칼라 서브쿼리(Scalar Subquery) - 주로 SELECT절에 위치하지만 컬럼이 올 수 있는 대부분의 위치에 사용 가능하다. 컬럼 대신 사용되므로 반드시 하나의 값만 반환해야 하며 그렇지 않은 경우 에러를 발생한다.
1-2. 인라인 뷰(Inline View) - FROM절 등 테이블명이 올 수 있는 위치에 사용가능하다.
1-3 중첩 서브쿼리(Nested Subquery) - WHERE절과 HAVING절에 사용가능하며 메인 쿼리와의 관계에 따라 다음과 같이 나뉜다.
① 메인 쿼리의 컬럼 존재 여부
㉮ 비연관 서브쿼리(Un-Correlated Subquery) - 서브쿼리 내에 메인 쿼리의 컬럼이 존재하지 않는다.
㉯ 연관 서브쿼리(Correlated Subquery) - 서브쿼리 내에 메인 쿼리의 컬럼이 존재한다.
② 반환하는 데이터 형태
㉮ 단일 행 서브쿼리 - 항상 1건 이하의 행만 반환하며 특정 비교 연산자(=, <, <=, >, >=, <>)와 함께 사용한다.
㉯ 다중 행 서브쿼리 - 2건 이상의 행을 반환하며 특정 비교 연산자(IN, ALL, ANY, SOME, EXISTS)와 함께 사용한다.
* IN 연산자 - 메인 쿼리의 비교조건이 서브쿼리의 출력결과와 하나라도 일치한 데이터를 반환
* ALL 연산자 - 메인 쿼리의 비교조건이 서브쿼리의 출력결과와 모두 일치한 데이터를 반환
* ANY, SOME 연산자 - 메인 쿼리의 비교조건이 서브쿼리의 출력결과와 하나 이상 일치한 데이터를 반환
* EXIST 연산자 - 서브쿼리의 출력결과가 하나라도 존재하면 참
㉰ 다중 컬럼 서브쿼리
'자격증 > SQLD' 카테고리의 다른 글
[ SQLD 자격증 ] SQL 활용 - 3. 집합 연산자 (0) | 2023.05.27 |
---|---|
[ SQLD 자격증 ] SQL 활용 - 2. 뷰(View) (0) | 2023.05.26 |
[ SQLD 자격증 ] SQL 기본 및 활용 - 7. STANDARD JOIN (0) | 2023.05.24 |
[ SQLD 자격증 ] SQL 기본 및 활용 - 6. JOIN (0) | 2023.05.22 |
[ SQLD 자격증 ] SQL 기본 및 활용 - 5. ORDER BY절 (0) | 2023.05.21 |