서브쿼리?
하나의 SQL 문 안에 포함된 또 다른 SQL , 메인쿼리 실행 전 1번 실행된다
SELECT / FROM / WHERE / HAVING 등에 사용되며
비교 연산 시 반드시 오른쪽에 쓰고 , 괄호 안에 쓰며 개수와 자료형을 일치시킨다
유형
1. 단일행 : 서브쿼리 결과값이 1개이며 앞에 비교연산자 가능( > < = ...)
2. 다중행 : 서브쿼리 조회 결과값이 여러행으로 나오며 비교연산자를 쓸 수 없다
--그러므로 다음을 사용한다.
- IN / NOT IN : 한개라도 일치하는 것이 존재
- >ANY , <ANY : 여러 결과보다 하나라도 크다, 작다
- 가장 작은것보다 크다 / 가장 큰값보다 작다 를 의미한다
- >ALL, <ALL : 모든 값보다 크다 ,작다 의미
- (NOT) EXISTS : 값이 존재 하는지 아닌지 여부
3. 다중열 : 서브쿼리 컬럼수가 여러개이다.
비교 컬럼을 동일하게 서브쿼리를 작성해야 한다
->( 1 , 2 ) IN ( SELECT 1 , 2 FROM ~~~)
4. 다중행 다중열 : 서브쿼리 개수, 행이 여러개다
5. 상관쿼리 :
메인 쿼리의 값이 바뀌면 서브쿼리에도 영향을 줘 바뀌는 상호 연관 쿼리이다.
6. 스칼라쿼리 : 상관쿼리 중 결과 값이 1개인 서브쿼리
7. 인라인 뷰 : FROM 절에 사용하는 경우로 서브쿼리 결과를 테이블로 사용
TOP-N분석에 사용할 수 있다 (ROWNUM OR RANK() OVER / DENSE_RANK() )
* WITH 로 서브쿼리에 별칭을 주고 따로 사용할 수 있다
- WITH (별칭 ) AS (서브쿼리)
SELECT ~ FROM (별칭) ;
'개발자로 업그레이드 되자 > 오라클,SQL' 카테고리의 다른 글
오라클 DBMS 정리 6(DDL) (0) | 2021.09.29 |
---|---|
오라클 DBMS 정리 5( DML) (0) | 2021.09.28 |
오라클 DBMS 정리 3(집합 / JOIN) (0) | 2021.09.28 |
오라클 DBMS 정리 2(함수) (0) | 2021.09.28 |
오라클 DBMS 정리 1 (0) | 2021.09.28 |