<SUBQUERY(서브쿼리)>
하나의 주된 SQL(SELECT, CREATE, INSERT, UPDATE....) 안에 포함된 또하나의 SELECT문
메인 SQL문을 위해서 보조 역할을 하는 SELECT문
* 서브쿼리 구분
서브쿼리를 수행한 결과값이 몇행 몇열이냐에 따라서 분류됨.
- 단일행 (단일열) 서브쿼리 : 서브쿼리를 수행한 결과값이 오로지 1개일때 (한칸의 컬럼값으로 나올때)
- 다중행 (단일열) 서브쿼리 : 서브쿼리를 수행한 결과값이 여러 행일때
- (단일행) 다중열 서브쿼리 : 서브쿼리를 수행한 결과값이 여러 열일때
- 다중행 다중열 서브쿼리 : 서브쿼리를 수행한 결과값이 여러행, 여러 열일때
=> 서브쿼리를 수행한 결과가 몇행 몇열이냐에 따라서 사용가능한 연산자가 달라짐
1. 단일행(단일열) 서브쿼리 (SINGLE ROW SUBQUERY)
서브쿼리의 조회 결과값이 오로지 1개일때
일반 연산자 사용 가능(=, !=, >= <= > <...)
2. 다중행 서브쿼리 (MULTI ROW SUBQUERY)
서브쿼리의 조회 결과값이 여러 행일 경우
- IN (10,20,30) 서브쿼리 : 여러개의 결과값 중에서 하나라도 일치하는 것이 있다면
- (> OR <) ANY(10,20,30) 서브쿼리 : 여러개의 결과값 중에서 "하나라도" 클 경우
즉, 여러개의 결과값 중에서 가장 작은 값보다 클경우
- (> OR <) ALL(10,20,30) : 여러개의 결과값의 모든 값보다 클경우 혹은 작을경우
3. (단일행) 다중열 서브쿼리
서브쿼리 조회결과가 값은 한행이지만, 나열된 컬럼의 갯수가 여러개일 경우
다중열 서브쿼리
-- (비교대상칼럼1, 비교대상칼럼2, ...) = (비교할값1, 비교할값2, ... => 서브쿼리형식으로 제시해야함)
4. 다중행, 다중열 서브쿼리
서브쿼리 조회 결과가 여러행, 여러 컬럼일 경우
'Oracle SQL > Oracle SQL 요약정리' 카테고리의 다른 글
Oracle SQL 요약정리 - CREATE TABLE 개념 및 표현법, 자료형 종류 (0) | 2023.06.05 |
---|---|
Oracle SQL 요약정리 - DDL 계정생성, DDL 개념, (1) | 2023.06.04 |
Oracle SQL 요약정리 - JOIN의 종류 및 쓰이는 표현법, 예시 등 (1) | 2023.06.02 |
Oracle SQL 요약정리 - 집합 연산자 SET OPERATOR(UNION, UNION ALL, INTERSECT, MINUS) (0) | 2023.06.01 |
Oracle SQL 요약정리 - 함수(GROUP BY, HAVING, ROLLUP, CUBE, SELECT 문 구조 및 실행순서) (0) | 2023.06.01 |