망각에 재주 있는 나를 위해 기록하는 곳.

서브쿼리 (Sub-Query), 집합 연산자(Set Operator) 본문

DB

서브쿼리 (Sub-Query), 집합 연산자(Set Operator)

baobabtree 2022. 3. 20. 04:25

서브쿼리 (Sub-Query)

서브쿼리는 SQL문 안의 SQL문

서브쿼리의 종류로는 SELECT절 서브쿼리 / FROM절 서브쿼리 / WHERE절 서브쿼리가 있다.

 

 

1. SELECT절 서브쿼리 (스칼라 서브쿼리, Scalar Sub-Query)

  • 반드시 단일 행, 단일 값을 리턴해야 함.
  • SUM, COUNT, MIN, MAX 등 집계함수가 많이 쓰임.

 

2. FROM절 서브쿼리 (인라인뷰, Inline Views)

  • 서브쿼리의 결과는 반드시 하나의 테이블로 리턴 되어햐 함.

 

3. WHERE절 서브쿼리 (중첩 서브쿼리, Nested Sub-Query)

  • 단일 행, 복수 행 모두 가능.
  • 가장 자주 쓰이는 서브쿼리

 


집합 연산자(Set Operator)

테이블을 집합의 개념으로 보고, 두 테이블 연산에 집합 연산자를 사용하는 방식.

집합 연산자는 여러 질의 결과를 연결하여 하나로 결합하는 방식을 사용함.

 

집합 연산자의 종류로 UNION / UNION ALL / INTERSECT / MINUS(EXCEPT)

 

1. UNION

중복 행이 제거된 쿼리 결과를 반환하는 집합 연산자

중복 레코드를 제외

 

2. UNION ALL

중복 행이 제거되지 않은 쿼리 결과를 반환하는 집합 연산자

중복 레코드도 허용

 

3. INTERSECT

두 쿼리에 공통적으로 존재하는 결과를 반환하는 집합 연산자

중복 레코드만 포함

 

4. MINUS (EXCEPT)

첫 쿼리에 있고 두 번째 쿼리에는 없는 결과를 반환하는 집합 연산자

비교 레코드 제외

 

예)

SELECT *

FROM 테이블

WHERE 조건

UNION / UNION ALL / INTERSECT / MINUS(EXCEPT)

SELECT *

FROM 테이블

WHERE 조건