😀 Language/- SQL

[보충공부] 서브쿼리(Subquery)

또방91 2021. 11. 9. 11:07
728x90

1. 서브쿼리(Subquery)란?

SQL문 내에 다시 SELECT문을 사용하는 것이다.

<종류>

1) 인라인뷰(Inline view) : FROM구 ( SELECT문) 사용

2) 스칼라서브쿼리(Scala Subquery): SELECT문에 (SELECT문) 사용

3) 서브쿼리(Subquery): WHERE구에 ( SELECT문 )사용

 

2. 서브쿼리 분류

반환행에 따라 단일행 / 다중행

 

1) 단일행 서브쿼리

 : 서브쿼리를 실행하면 그 결과는 반드시 한 행만 조회된다.

 : 단일 행 비교 연산자는 =, <, <=, >, >=, <> 사용

 

2) 다중행 서브쿼리

 : 서브쿼리를 실행하면 그 결과는 여러개 행 조회된다.

 : 다중 행 비교 연산자는 IN, ANY, ALL, EXISTS 사용

  ① IN : 결과 여러 행 중 최소 1개만 동일하면 참 (or조건) 

  ② ANY : 결과 여러 행 중 하나이상 동일하면 참(<ANY: 하나라도 크면 참, >ANY: 하나라도 작으면 참)

  ③ ALL : 메인쿼리와 서브쿼리 결과가 모두 동일하면 참(<ALL: 최솟값, >ALL: 최댓값)

  ④ EXISTS : 결과 여러 행 중 어떤 데이터 존재하기만 하면 참 (결과는 참/거짓으로 출력)

 

**스칼라 서브쿼리: 반드시 한 행과 한 칼럼만 반환하는 서브쿼리임. 여러 행 반환하면 오류발생

 

728x90