728x90
반응형
[01] 서브쿼리(Subquery)
- 하나의 쿼리 안에 존재하는 또 다른 쿼리이다.
- 엄마쿼리를 메인쿼리라고 부르고 안에 있는 아기쿼리를 서브쿼리라고 부른다.
SELECT 절 | 스칼라 서브쿼리(Scalcar Subquery) |
FROM절 | 인라인 뷰 (Inline View) |
WHERE / HAVING 절 | 중첩 서브쿼리 (Nested Subquery) |
(1) 스칼라 서브쿼리 (Scalar Subquery)
- 주로 SELECT절에 위치하지만 컬럼이 올 수 있는 대부분 위치에 사용할 수 있다.
- 컬럼 대신 사용되므로 반드시 하나의 값만을 반환해야 하며 그렇지 않은 경우 에러를 발생시킨다.
(2) 인라인 뷰 (Inline View)
- FROM절 등 테이블명이 올 수 있는 위치에 사용 가능하다.
(3) 중첩 서브쿼리 (Nested Subquery)
1) Where 절과 Having절에 사용할 수 있다. 중첩 서브 쿼리는 메인쿼리와의 관계에 따라 다음과 같이 나눌 수 있다.
비연관 서브쿼리 (Uncorrelated Subquery) | 메인쿼리와 관계를 맺고 있지 않음 |
연관 서브쿼리 (Correlated Subquery) | 메인쿼리와 관계를 맺고 있음 |
1. 비연관 서브쿼리(Un- Correlated Subquery) - 서브쿼리 내에 메인쿼리의 컬럼이 존재하지 않는다.
2. 연관 서브쿼리 (Correlated Subquery) : 서브쿼리 내에 메인쿼리의 칼럼이 존재한다.
2) 중첩 서브쿼리는 반환하는 데이터 현태에 따라 다음과 같이 나눌 수 있다.
단일 행(Single Row) 서브쿼리 | 서브쿼리가 1건 이하의 데이터를 반환 단일 행 비교 연산자와 함께 사용 - 항상 1건 이하의 결과만 반환한다. =, <, >, <=, >=, <> |
다중 행(Multi Row) 서브쿼리 | 서브쿼리가 여러 건의 데이터를 반환 다중 행 비교 연산자와 함께 사용 - 2건 이상의 행을 반환 IN, ALL, ANY, SOME, EXISTS |
다중 컬럼(Multi Column) 서브쿼리 | 서브쿼리가 여러 컬럼의 데이터를 반환 |
728x90
반응형
'자격증 > SQLD' 카테고리의 다른 글
SQL 기본 및 활용 - SQL활용 - 그룹 함수 (0) | 2024.03.05 |
---|---|
SQL 기본 및 활용 - SQL활용 - 뷰(View) / 집합 연산자 (0) | 2024.03.03 |
SQL 기본 및 활용 - SQL기본 - JOIN (0) | 2024.03.02 |
SQL 기본 및 활용 - SQL기본 - GROUP BY, HAVING 절 / ORDER BY 절 (2) | 2024.02.29 |
SQL 기본 및 활용 - SQL기본 - WHERE절 (0) | 2024.02.29 |