1. 서브쿼리 (SubQuery)
- 하위 쿼리
- SELECT 절의 결과를 WHERE 절에서 하나의 변수(상수)처럼 사용하고 싶을 때 사용
- SQL 쿼리 내부에 액자구조로 또 다른 쿼리가 위차할 경우 내부의 쿼리를 서브쿼리라 함
- 서브쿼리 바깥쪽 부분은 외부쿼리(Outer Query) 혹은 상위쿼리 라고 함
- 서브쿼리는 SELECT , INSERT, UPDATE, DELETE문, 그리고 다른 서브쿼리 내부에서 사용될 수 있음
- 복합적 쿼리를 위해 사용된다는 점에서 조인과 유사
1-1 단일행 서브쿼리(Single Row Subquery)
- 서브쿼리의 결과가 1행 또는 0행인 경우 연산자를 통해 연결
= : 같다 <> : 같지 않다 > : 초과(크다) >= : 이상(크거나 같다) < : 미만(작다) <= : 이하(작거나 같다) |
1-2 다중행 서브쿼리(Multi Row Subquery)
- 서브쿼리의 결과가 2개 이상일 수 있는 경우
in(a, b) : a와 b사이의 값 >any(a, b) : a,b 중 최소보다 큰 >all(a, b) : a,b 중 최대보다 큰 <any(a, b) : a,b 중 최대보다 작은 <all(a, b) : a,b 중 최소보다 작은 |
ex)
in(2200, 3000) : 2200과 3000사이의 값 >any(2200, 3000) : 2200, 3000 중 최소보다 큰 값 >> 2200 보다 큰 값 >all(2200, 3000) : 2200, 3000 중 최대보다 큰 값 >> 3000 보다 큰 값 <any(2200, 3000) : 2200, 3000 중 최대보다 작은 >> 3000 보다 작은 값 <all(2200, 3000) : 2200, 3000 중 최소보다 작은 >> 2200 보다 작은 값 |
1-3 다중컬럼 서브쿼리(Multi Column SubQuery)
- 서브쿼리의 결과로 여러 컬럼이 반환되는 경우(다중행)
- 2개의 컬럼을 반환하는 서브쿼리를 사용할 경우, WHERE절에도 2개의 컬럼명을 적어주고 괄호로 묶어준다
1-4 스칼라 서브쿼리(Scalar SubQuery)
- SELECT 절에 서브쿼리를 사용하여 하나의 컬럼처럼 사용하기 위한 목적
- 조인(Join)의 대체표현식으로도 자주 사용
- 하지만, 성능이 좋으 편도 아니면서, 주 표현식이 아니므로 알고만 있을 것
2. 인라인 뷰(Inline VIew)
- 서브쿼리가 FROM 절 안에서 사용될 경우, 해당 서브쿼리를 '인라인 뷰' 라고 함
- 서브쿼리의 결과가 하나의 테이블에 대한 뷰처럼 사용되기 때문
인라인뷰 , 뷰, 메터리얼 뷰는 모두 집합을 의미
JOIN - 두 테이블의 레코드(행)들을 교점(JOIN 조건)을 이용해 수평 접합하여 집합을 형성
인라인뷰 - FROM 절에 명시한 괄호로 묶은 서브쿼리 = 괄호로 묶은 물리적인 실체가 없는 가상 집합.
SQL의 수행이 끝나고 시간이 지나면 휘발됨.
뷰 - 역시 물리적인 실체는 없으나 인라인뷰와 달리 DBMS의 메모리에 별도의 ID를 가지고 상주해 있는
언제든 엑세스 할 수 있는 비휘발성 가상 집합.
'Oracle SQL' 카테고리의 다른 글
[Oracle] 정규 표현식 - Meta Character (0) | 2021.08.19 |
---|---|
[Oracle/SQL] From dual (0) | 2021.07.30 |
댓글