DB: sub Query

1c2·2024년 4월 9일
0

DB

목록 보기
6/7

서브 쿼리 (Subquery)

  • 서브 쿼리란 다른 쿼리 내부에 포함되어 있는 select 문을 의미한다.

  • 서브 쿼리를 포함하고 있는 쿼리를 외부 쿼리 또는 메인 쿼리라고 부르며, 서브 쿼리는 내부 쿼리라고도 부른다.

  • 서브 쿼리는 비교 연산자의 오른쪽에 기술해야 하고 반드시 괄호()로 감싸져 있어야만 한다.

  • 서브 쿼리의 종류

    • 중첩 서브 쿼리 where문에 작성하는 서브 쿼리.
      • 단일 행
      • 복수 행
      • 다중 컬럼
    • 인라인 뷰 - from 문에 작성하는 서브 쿼리
    • 스칼라 서브 쿼리 - select 문에 작성하는 서브 쿼리
  • 주의 사항

    • 서브 쿼리는 반드시()로 감싸야 한다.
    • 서브 쿼리는 단일 행 또는 다중 행 비교 연산자와 함께 사용된다.
  • 서브 쿼리가 사용이 가능한 곳

    • select
    • from
    • where
    • having
    • order by
    • insert문의 values
    • update문의 set
  • 사용 이유
    join에 비해 빠르다.

  • 사번이 100인 사원의 부서 이름?

-- join
select department_name
from employees e join departments d
on e.department_id = d.department_id
where e.employee_id = 100;

-- subquery
select department_name
from departments
where department_id = (
						select department_id
                        from employees
                        where employee_id = 100
						);
  • 근무 도시가 ‘seattle’(대소문자 구분X)인 사원의 사번, 이름.
select employee_id, first_name
from employees
where department_id in (
						select department_id
						from departments
						where location_id = (
											select location_id
											from locations
											where binary(city) = 'Seattle'
											)
						);

0개의 댓글