category : 데이터베이스

[Post] 서브쿼리(Subquery), 스칼라 서브쿼리

writer : @blackcat date : 2024. 2. 16. 15:37

서브 쿼리

 

서브쿼리(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