처음 SQL 배울 때 진짜 유용한데 진짜 잘 못 쓰던 subquery에 대해서 정리해보려 한다.
CTE처럼 (이전 글 참고) 새로운 테이블을 만지는 것이 아닌, 작성 중인 쿼리 내에 주석을 붙이듯 쿼리를 작성하는 방법이다. 데이터가 클 떄에는 서브 쿼리가 CTE보다 조금 더 빠르다고 한다.
1. Subquery 란?
하나의 SQL 쿼리 안에 작성 된 또 다른 SQL 쿼리 입니다. '부속 질의'라고 부르기도 합니다.
2. Subquery를 사용할 수 있는 위치
SELECT 절 (스칼라 부속 질의)
FROM 절 (인라인 뷰)
WHERE 절
HAVING 절
ORDER BY 절
INSERT문의 VALUES 절
UPDATE문의 SET절
3. WHERE 절 부속질의
3-1. 비교 (단일 행 서브쿼리)
서브 쿼리의 결과 건수가 반드시 1개 이하 (2개 이상일 경우 Error)
3-2. 집합, 한정, 존재 (다중 행 서브 쿼리)
다중 행 연산자 | 설명 |
IN | 서브쿼리의 결과에 존재하는 임의의 값과 동일한 조건을 의미한다. |
ALL | 서브쿼리의 결과에 존재하는 모든 값을 만족하는 조건을 의미한다. |
ANY | 서브쿼리의 결과에 존재하는 어느 하나의 값이라도 만족하는 조건을 의미한다. |
EXISTS | 서브쿼리의 결과를 만족하는 값이 존재하는지 여부를 확인하는 조건을 의미한다. |
참고: https://mozi.tistory.com/233
[DATABASE] 서브쿼리란? 서브쿼리 사용해보기
서브쿼리란? 하나의 SQL 문에 포함되어 있는 또 다른 SQL 문을 말합니다. 서브쿼리 사용시 주의사항 1. 서브쿼리를 괄호로 감싸서 사용한다. 2. 서브쿼리는 단일 행 또는 복수 행 비교 연산자와 함
mozi.tistory.com
'SQL' 카테고리의 다른 글
[SQL] 카티션 조인 (0) | 2023.01.27 |
---|---|
[solvesql] 복수 국적 메달 수상한 선수 찾기 (1) | 2023.01.10 |
쿼리 효율 Query Efficiency (4) | 2022.10.07 |
[MySQL] 문자열 추출(SUBSTR), 문자열 합치기(CONCAT) (0) | 2022.09.11 |
[MySQL] 임의의 가상 테이블 만들기 (WITH, WITH RECURSIVE), CTE (0) | 2022.07.16 |