최대 1 분 소요

서브 쿼리(Subquery)

  • 서브 쿼리(subquery)란 다른 쿼리 내부에 포함되어 있는 SELECT문을 의미한다.
  • 서브 쿼리를 포함하고 있는 쿼리를 외부 쿼리(outer query) 또는 메인 쿼리라고 부르며, 서브 쿼리는 내부 쿼리(inner query)라고도 부른다.
  • 서브 쿼리는 비교 연산자의 오른쪽에 기술해야하고 반드시 괄호’()’로 감싸져 있어야만 한다.

서브 쿼리 종류

  • 중첩 서브 쿼리 WHERE 문에 작성하는 서브 쿼리

    1. 단일 행 Nested Subquery

      서브 쿼리의 결과가 단일행을 리턴

    2. 복수(다중) 행

      • 서브 쿼리의 결과가 다중행을 리턴: IN, ANY, ALL
      • 적어도 하나만 만족하면 true. IN(등호와 사용), ANY(부등호와사용)
      • 모두 만족하면 true. ALL
    3. 다중 컬럼

  • 인라인 뷰(Inline View) -FROM문에 작성하는 서브쿼리

    • FROM절에 사용되는 서브 쿼리를 인라인 뷰라 한다.

    • 서브 쿼리가 FROM절에 사용되면 뷰(view)처럼 결과가 동적으로 생성된 테이블로 사용 가능

    • 임시적인 뷰이기 때문에 데이터베이스에는 저장되지 않는다.

    • 동적으로 생성된 테이블이기 때문에 column을 자유롭게 참조 가능

      create view Name
      as select empno, ename, deptno
      from emp
      where deptno =30;
      
  • 스칼라 서브 쿼리(Scalar Subquery) - SELECT 문에 작성하는 서브 쿼리

    • SELECT 절에 있는 서브 쿼리
    • 한 개의 행만 반환

주의 사항

  • 서브 쿼리는 반드시 ()로 감싸야한다.

  • 서브 쿼리는 단일 행 또는 다중 행 비교 연산자와 함께 사용된다.

서브 쿼리가 사용이 가능한 곳

  • SELECT
  • FROM
  • WHERE
  • HAVING
  • ORDER BY
  • INSERT 문의 VALUES
  • UPDATE문의 SET

업데이트:

댓글남기기