1. 서브쿼리(Subquery)란 무엇인가?
◎ 서브쿼리(Subquery)란 SELECT 문 안에 또다시 SELECT문이 있는 쿼리문입니다.
◎ 서브쿼리는 위치에 따라 명칭이 다릅니다. FROM절에 사용하는 인라인 뷰(Inline view), SELECT문에 사용하는 스칼라 서브쿼리(Scala Subquery), 일반적으로 WHERE절에 사용하는 것을 서브쿼리(Subquery)라고 합니다.
1-1. 서브쿼리 형태
◎ 서브쿼리(Subquery)
- 일반적으로 where절에 사용하는 서브쿼리입니다.
◎ 인라인 뷰(Inline View)
- FROM절에 사용하는 서브쿼리입니다.
◎ 스칼라 서브쿼리(Scala Subquery)
- SELECT문에 사용하는 서브쿼리입니다.
◎ 연관 서브쿼리(Correlated Subquery)
- 서브쿼리 내에서 메인 쿼리의 컬럼을 사용하는 것
2. 단일 행 서브쿼리, 다중 행 서브쿼리
◎ 서브쿼리가 반환하는 행의 갯수에 따라 분류가 됩니다.
◎ 단일 행 서브쿼리는 하나의 행만 반환되는 서브쿼리로, 비교연산자(=, <, <=, >=, <>)를 사용합니다.
◎ 다중 행 서브쿼리는 여러 행을 반환하는 서브쿼리로, IN, ANY, ALL, EXISTS를 사용해 비교합니다.
2-1. 다중 행 비교 연산자
◎ IN -- 서브쿼리의 결과 중 하나만 동일하면 참
- 서브쿼리의 결과가 emptest.empno에 있으면 조회
◎ ALL -- 서브쿼리의 조건에 모두 맞으면 조회
- deptno가 20보다 작거나 같고, 10보다 작거나 같은 행을 조회
◎ ANY -- 서브쿼리 결과 중 하나라도 맞으면 조회
◎ EXISTS -- 서브쿼리 결과가 하나라도 메인쿼리에 존재하면 조회
'Programming > DataBase' 카테고리의 다른 글
[DataBase]윈도우 함수(Window Function)에 대해 알아보자! 1편 (2) | 2019.03.02 |
---|---|
[DataBase]그룹 함수(Group Function)에 대해 알아보자! (0) | 2019.03.02 |
[DataBase]계층형 조회(Connect by)를 사용하는 법을 알아보자! (1) | 2019.03.01 |
[DataBase]DB에서 조건문을 사용해 보자! (0) | 2019.03.01 |
[DataBase]정규화(Normalization)에 대해 알아보자! (0) | 2019.02.21 |