SubQuery

민지킴·2021년 6월 10일
0

SubQuery

Select문 : scalar subquery

    하나의 컬럼처럼 사용하기 위함이다!!
  • 스칼라 서브쿼리란 Select-List에서 서브쿼리가 사용될 때 이를 스칼라 서브쿼리라 칭함.
  • 스칼라 서브쿼리의 특징은 다음과 같음.
    • 	하나의 레코드만 리턴이 가능하며, 두개 이상의 레코드는 리턴할 수 없다.
    • 	일치하는 데이터가 없더라도 NULL값을 리턴할 수 있다.
이는 원래 그룹함수의 특징중에 하나인데 스칼라 서브쿼리 또한 이 특징을 가지고 있다.

From절 : inline-view

    하나의 테이블처럼 사용(테이블 대체 용도)
	select절의 결과를 from절에서 하나의 테이블처럼 사용하고 싶을때 사용한다!

ex)
select *
from
db_mall.tb_product_info A,
(
select
product_no , max(B.product_option_add_price) as option_max_price
from
db_mall.tb_product_option_info B
group by
product_no
) subquery1
where ~ ;

추가적으로. 서브쿼리에 ORDER BY 절은 올 수 없답니다. 사실 서브쿼리는 출력 용도가 아닌 테이블처럼 사용 용도이므로 굳이 정렬할 필요가 없는 것이죠.

Where절 : subquery

      하나의 변수(상수)처럼 사용 (서브쿼리의 결과에 따라 달라지는 조전절)

ex)
Allen의 sal은 1600이다.

select *
from table
where sal> 1600 에서

Allen 의 연봉이 오른다면 이 식을 계속 사용할 수 없습니다. 변경될 때마다 계속 수정이 필요하죠.
이 때, where 절에 상수를 사용하지 않고, 상수 대신 무언가의 결과를 재사용하고 싶을 때 서브쿼리를 사용합니다!

select *
from table
where sal> (select sal
from table
where name=‘Allen’)

profile
하루하루는 성실하게 인생 전체는 되는대로

0개의 댓글