[MySQL]_서브쿼리 개념 (feat. select , from , where)

2022. 5. 31. 16:04[DB]/[MySQL]_

728x90
반응형

서브쿼리 : 하나의 메인 쿼리 문장 안에 포함된 다른 쿼리

- 메인쿼리를 실행하기 전에 모든 서브쿼리가 한번 실행됨

 

서브쿼리는 조회 쿼리의 기본 형태인

select

from

where

의 3가지 위치에서 사용가능합니다

또한 위치에 따라서 종류가 나뉘어 집니다.

 

1] select - 스칼라 서브쿼리

 

select 절 안에 쿼리가 있는 경우 스칼라 서브쿼리라고 부릅니다

스칼라 서브쿼리는 반드시 단일 행 혹은 단일 값으로 이루어져야 합니다.

서브쿼리로 실행된 값을 메인쿼리에서 집어오기 때문입니다.

 

스칼라 서브쿼리를 복잡하게 작성할 경우 ( JOIN 과 같은 ) 심각한 기능저하가 일어날 수 있어 사용을 자제합니다.

 

2] from - 인라인 뷰 서브쿼리

 

from 절 안에 쿼리가 있는 경우이며,

해당 쿼리는 반드시 테이블로 반환되어야 합니다.

메인쿼리에서 해당 테이블 에서 쿼리가 실행되기 때문입니다.

 

보통 JOIN을 한 테이블과 from 절 서브쿼리를 활용하는 쿼리가 많이 나옵니다.

table 리턴시 선택된 컬럼이름과

메인쿼리의 select 컬럼이름이 동일해야 사용 가능합니다.

 

3] where - 중첩 서브쿼리

 

where 절 안에 쿼리가 있는 경우이며,

서브쿼리로 나온 값을 기준으로 where 절에서 조건을 걸기 위해 사용함.

보통 다른 테이블의 값을 가져오는데, 해당 값도 조건을 건 뒤의 값을 가져올 때 많이 사용합니다.

 

감사합니다.

 

728x90
반응형