서브쿼리란 하나의 쿼리 안에 포함된 또 하나의 쿼리를 뜻한다.
메인쿼리가 서브쿼리를 포함하는 종속적인 관계를 가진다.
알려지지 않은 기준을 이용한 검색에 유용하다.
메인 쿼리가 실행되기 이전에 한 번만 실행된다.
한 문장에서 여러 번 사용 가능하다.
select * from employee where 급여 >
(select 급여 fom employee where id = 1)
-- 사원 id가 1인 사람의 급여보다 많은 사람들을 검색하고 싶을 때 --
서브쿼리는 반드시 괄호와 함께 사용되야 한다.
서브쿼리 안에서 order by 를 사용 할 수 없다.
서브쿼리는 연산자의 오른쪽에 사용되어야 한다.
서브쿼리는 오로지 select 문으로만 작성 가능하다.
결과가 한 행만 나오는 서브쿼리를 뜻한다.
결과가 2개 이상의 행이 나오는 서브쿼리를 뜻한다.
<any 는 최대값을 뜻한다.
>all 는 최대값을 뜻한다.
>any 는 최소값을 뜻한다.
<all 는 최소값을 뜻한다.
select 절에서 사용하는 서브쿼리로 스칼라 서브쿼리는 오로지 한 행만 반환한다.
마치 join을 사용한 것과 같은 결과를 나타낸다.
select students.name, (
select math
from middle_test as m
where m.student_id = students.student_id
) as middle_avg
from students;