[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
반응형
'[DB] > [MySQL]_' 카테고리의 다른 글
Partition 이란? (0) | 2024.03.26 |
---|---|
[WITH RECURSIVE]_재귀 쿼리 사용법 (0) | 2022.06.29 |
[MySQL]_Mybatis 의 choose, when , otherwise 개념,사용 (0) | 2022.06.09 |
MYSQL_UNION , UNION ALL 차이점, 설명 (0) | 2022.05.31 |