본문 바로가기

Programming/DataBase

[DataBase]서브쿼리(Subquery)란 무엇일까?

728x90
반응형



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 -- 서브쿼리 결과가 하나라도 메인쿼리에 존재하면 조회



반응형