본문 바로가기

카테고리 없음

[DB공부] 7. subquery를 사용해보자 - 미완성

subquery


- 2개의 쿼리문을 한번에 작성할 수 있도록 한다.

- subquery는 main query 전에 실행됩니다. 서브쿼리의 결과는 메인쿼리에서 사용됩니다.

- 단일행 서브쿼리 && 여러 행 서브쿼리

  : 단일 - 내부 select문에서 하나의 행만 반환하는 쿼리

    여러 행 - 내부 select문에서 두 개 이상의 행을 반환하는 쿼리

- having절 (where절 뿐만 아니라 having절에서 사용가능)

  select   department_id, min(salary) 

  from     employees 

  group by department_id 

  having   min(salary) > (select min(salary) 

                                from   employees 

                                where  department_id = 50);

 - 여러행이 나올경우 : '=' 말고 in사용

  select employee_id, last_name

  from employees

  where department_id in (select department_id

                                  from employees

                                  where last_name like '%u%');

- any, all (true, false)

any (<) : 최댓값보다 작음을 의미

any (>) : 최소값보다 큼을 의미

all (<) : 최소값보다 작음을 의미

all (>) : 최댓값보다 큼을 의미


- exists 연산자 : 특정행이 있는지 여부에 따라 쿼리 결과가 달라지는 쿼리, 최소 한개의 행을 반환하면 true로 평가

- subquery에서 not in 사용 X 반환되는 값 중 하나가 null이면 전체 쿼리가 행을 반환하지 않는다.