서브 쿼리
서브쿼리(Subquery)는 SQL 쿼리 내부에서 다른 쿼리를 포함하는 쿼리다. 즉, 하나의 SQL 문 안에 또 다른 SQL 문이 포함되어 있는 구조로서, 서브쿼리는 주로 WHERE, FROM, SELECT, HAVING 절에서 사용된다.
- 조건식으로 사용
다른 쿼리의 결과를 조건식으로 사용하여 주 쿼리의 결과를 제한
-> SELECT 이름, 학년 FROM 학생명부 WHERE 학번 = (SELECT 학번 FROM 특별반 WHERE 조건);
- 행 비교
서브쿼리를 사용하여 주 쿼리의 결과와 비교하여 특정 행을 선택
-> SELECT 이름, 학년 FROM 학생명부 WHERE 평균성적 > (SELECT AVG(평균성적) FROM 성적명부);
- IN, NOT IN
서브쿼리의 결과가 특정 집합에 속하는지 여부를 확인
-> SELECT 이름, 학년 FROM 학생명부 WHERE 동아리 IN (SELECT 동아리 FROM 동아리명부 WHERE 조건);
(학생명부에서 이름과 학년을 선택하는데, 이때 동아리가 동아리명부에서 특정 조건을 만족하는 동아리에 속한 학생들만 선택하기)
- FROM
서브쿼리를 사용하여 새로운 테이블을 생성하거나 필요한 데이터를 가져올 수 있다.
-> SELECT 이름, 학년 FROM (SELECT 학번 FROM 학생명부 WHERE 조건) AS 특별반명부;
(특별반명부(학생명부에서 특정 조건을 만족하는 학생들의 학번을 모은 테이블)에서 이름과 학년을 선택하기)
스칼라 서브쿼리
서브쿼리가 하나의 값만 반환하는 경우를 스칼라 서브쿼리라고 한다.
서브쿼리는 복잡한 쿼리를 작성할 때 유용하며, 데이터베이스 시스템의 성능 최적화 및 쿼리의 가독성을 향상시킨다.
'데이터베이스' 카테고리의 다른 글
JOIN (0) | 2024.02.20 |
---|---|
AS, HAVING 절 (0) | 2024.02.16 |
group by (0) | 2024.02.16 |
RDBMS QUERY (0) | 2024.02.16 |
Database 설계 및 모델 (0) | 2024.02.16 |