본문 바로가기
Database/Oracle

[Oracle/SQL] 서브쿼리(SubQuery)

by 챠챠12 2020. 4. 22.

하나의 SQL(메인쿼리)안에 다른 SQL(서브쿼리)가 들어있는 것을 말한다.

< 주의 >
서브쿼리는 메인쿼리의 칼럼 사용이 가능하다. 메인쿼리는 서브쿼리의 칼럼 사용이 불가능하다.
서브쿼리에서는 ORDER BY가 불가능하다.

1. 반환되는 데이터의 형태에 따른 서브쿼리 분류
  1.1 Single Row 서브쿼리: 서브쿼리의 실행결과가 항상 1건 이하인 서브쿼리를 의미한다. 
  : 서브쿼리의 결과를 =, <, <=, >, >=, <>(단일 행 비교 연산자) 와 같이 사용.

  1.2 Multi Row 서브쿼리: 서브쿼리의 실행결과가 항상 여러 건인 서브쿼리를 의미한다.
  : 서브쿼리의 결과를 IN, ALL, ANY, SOME, EXISTS(다중 행 비교 연산자) 와 같이 사용.

  1.3 Multi Column 서브쿼리: 서브쿼리의 실행결과로 여러 칼럼을 반환한다.
  : 서브쿼리와 메인쿼리에서 비교하고자 하는 칼럼의 갯수와 위치가 동일 해야한다.

2. 서브쿼리 가능한 위치

1. SELECT 절 -> 스칼라 서브쿼리
2. FROM 절 -> 인라인 뷰
3. HAVING 절
4. SET 절 (UPATE)
5. VALUES 절 (INSERT)
6. ORDER BY 절

 

728x90
반응형
LIST

댓글