본문 바로가기
🖥️ 데이터베이스/SQL

[Oracle] SubQuery 서브쿼리

by OR15A 2024. 1. 5.
SubQuery 서브쿼리의 개념
  • 하나의 SELECT문 안에 포함되어있는  또 다른 쿼리.
    • 보통 ①서브쿼리 → ②메인쿼리 순서로 계산함
  • 서브쿼리를 사용할 수 있는 곳
    • Where절, From절, Having절, Select문,
    • CREAT절, DML문(Insert,Update,Delete)
  • 서브쿼리는 괄호로 묶여있어야 함.
  • 서브쿼리구문에는 Order By절 못들어감.
  • 서브쿼리는 연산자의 오른쪽!에 위치함
  • 서브쿼리가 사용가능한 연산자
    • 단일행 연산자: = > >= < <= <>
    • 복수행 연산자: In, Not In
  • 서브쿼리의 결과로 나올 수 있는 것

 

 

Single Row SubQuery 싱글로우 서브쿼리
  • 서브쿼리→ main쿼리로 전달되는 행이 1개.
  • 단일행 연산자 = 사용.

Single Row SubQuery

 

 

Multi Row SubQuery 멀티로우 서브쿼리
  • 서브쿼리→ main쿼리로 전달되는 행이 여러개.
  • 다중행 연산자 사용. (In, Not In)

Multi Row SubQuery

 

 

Multi Column SubQuery
  • 멀티컬럼 서브쿼리
  • 서브쿼리 구문을 작성할 때 Where절에서 여러개의 칼럼을 괄호로 묶어서 동시에 비교함.
  • pair-wise되었다고 함(서로 다른 항목의 독립적인 비교). 괄호 안의 칼럼과 서브쿼리의 Select문은
  • 컬럼개수, 데이터 타입이 일치해햐 함.

Multi Column SubQuery
Multi Column SubQuery

 

 

From절의 SubQuery
  • 한 테이블에 데이터 양이 많을 때 테이블에서
  • 필요한 행과 컬럼을 선택하여 서브쿼리로 From절에 넣을 수 있다. 별칭 필수.
  • 이런 서브쿼리를 InLine View라고 부른다. ④

From절의 SubQuery
From절의 SubQuery

 

 

Having절에서의 SubQuery

 

 

SLECET문에서의 SubQuery (ch.14의 상관쿼리)

SLECET문에서의 SubQuery

 

 

CREATE절에서의 SubQuery
  • 기존의 테이블을 이용해서 특정 컬럼 또는 행만으로 원하는 테이블 생성 가능함

CREATE절에서의 SubQuery
CREATE절에서의 SubQuery

 

  • + Where절에 false인 조건을 넣으면 데이터는 없고 형식만 갖춘 테이블이 생성됨

Where 절에  false 인 조건을 넣기
Where 절에  false 인 조건을 넣기