: sql문 내select 문을 삽입하는 것
: 주로 from 절이나 where 절에서 사용
: 서브 춰리의 조회 결과가 0개 또는 1개인 쿼리
SELECT department_name
FROM department
WHERE dpeartment_id = SELECT dpeartment_id
FROM employee
WHERE employee_name=‘홍길동')
: 서브 쿼리의 조회 결과 행이 0개 이상인 쿼리
→ in, all, any 연산자등과 사용됨
DELETE FROM: employee
WHERE salary IN (SELECE salary
FROM employee
WHERE department_id =30
- where절 에서의 연산자
→ in (단일행에서의 == 대신 사용)
→ 비교연산자 any : 조회된 값들 중 하나만 참이면 참 (where 컬럼 > any(서브쿼리) )->or이라고 생각
→ 비교연산자 all : 조회된 값들 모두와 참이면 참 (where 컬럼 > all(서브쿼리) )
→ from절 상에 오는 서브쿼리
→ select 결과를 논리적 테이블로 처리
SELECT e.employee_name ,
d.department_name
FROM employee e,
(select department_id from department where location=‘ 서울 ’) d
WHERE e.department_id = d.department_id
서브쿼리는 반드시 ( ) 로 묶어줘야 한다.
상관(연관) 쿼리
: 메인 쿼리 table의 조회 값을 서브 쿼리의 조건에서 사용하는 쿼리
(상관(연관)쿼리와 같이 사용됨)
→ 서브쿼리의 결과를 만족하는 값이 존재하는지 여부를 확인하는 조건
→ 조건을 만족하는 행이 여러개라도 한행만 있으면 더이상 검색하지 않음
고객(데이터) 주문(이력) → 특정 고객이 주문을 한 적이 있는지 여부
장비(데이터) 대여(이력) → 특정 장비가 대여 된 적이 있는지 여부