SubQuery 서브쿼리의 개념
- 하나의 SELECT문 안에 포함되어있는 또 다른 쿼리.
- 보통 ①서브쿼리 → ②메인쿼리 순서로 계산함
- 서브쿼리를 사용할 수 있는 곳
- Where절, From절, Having절, Select문,
- CREAT절, DML문(Insert,Update,Delete)
- 서브쿼리는 괄호로 묶여있어야 함.
- 서브쿼리구문에는 Order By절 못들어감.
- 서브쿼리는 연산자의 오른쪽!에 위치함
- 서브쿼리가 사용가능한 연산자
- 단일행 연산자: = > >= < <= <>
- 복수행 연산자: In, Not In
- 서브쿼리의 결과로 나올 수 있는 것
Single Row SubQuery 싱글로우 서브쿼리
- 서브쿼리→ main쿼리로 전달되는 행이 1개.
- 단일행 연산자 = 사용. ①
Multi Row SubQuery 멀티로우 서브쿼리
- 서브쿼리→ main쿼리로 전달되는 행이 여러개.
- 다중행 연산자 사용. (In, Not In) ③
Multi Column SubQuery
- 멀티컬럼 서브쿼리
- 서브쿼리 구문을 작성할 때 Where절에서 여러개의 칼럼을 괄호로 묶어서 동시에 비교함.
- pair-wise되었다고 함(서로 다른 항목의 독립적인 비교). 괄호 안의 칼럼과 서브쿼리의 Select문은
- 컬럼개수, 데이터 타입이 일치해햐 함.
From절의 SubQuery
- 한 테이블에 데이터 양이 많을 때 테이블에서
- 필요한 행과 컬럼을 선택하여 서브쿼리로 From절에 넣을 수 있다. 별칭 필수.
- 이런 서브쿼리를 InLine View라고 부른다. ④
Having절에서의 SubQuery
SLECET문에서의 SubQuery (ch.14의 상관쿼리)
CREATE절에서의 SubQuery
- 기존의 테이블을 이용해서 특정 컬럼 또는 행만으로 원하는 테이블 생성 가능함
- + Where절에 false인 조건을 넣으면 데이터는 없고 형식만 갖춘 테이블이 생성됨
'🖥️ 데이터베이스 > SQL' 카테고리의 다른 글
[Oracle] TRANSACTION CONTROL 트랜잭션 컨트롤 (1) | 2024.01.05 |
---|---|
[Oracle] Constraint 제약조건 (0) | 2024.01.05 |
[Oracle] Join으로 데이터 연결, Set 연산자 (1) | 2024.01.05 |
[Oracle] SubGroup으로 데이터 분류 (0) | 2024.01.05 |
[Oracle] 테이블 생성 및 데이터 조작 (0) | 2024.01.05 |