728x90
20221021(금)
- 목차
- 서브 쿼리
< 서브 쿼리 - Sub-Query >
- 한 SQL 문장 안에서 보조로 사용되는 또 다른 SELECT문을 의미
- 메인 쿼리 : 최종 결과를 출력하는 쿼리
- 서브 쿼리 : 중간 단계 혹은 보조 역할을 하는 SELECT문
(* 따라서 서브 쿼리는 여러 개를 사용할 수 있다.) - 서브 쿼리는 다양한 형태로 사용된다!
즉 SELECT, FROM, WHERE 절 모두에서 사용할 수 있을 뿐만 아니라,
INSERT, UPDATE, MERGE, DELETE 문에서도 사용할 수 있다. - 서브 쿼리는 그 특성과 형태에 따라 다음과 같이 구분할 수 있다.
메인 쿼리와의 연관성에 따라 | 형태에 따라 |
연관성 없는(Noncorrelated) 서브 쿼리 연관성 있는 서브 쿼리 |
일반 서브 쿼리(SELECT 절) 인라인 뷰(FROM 절) 중첩 쿼리(WHERE 절) |
1) 연관성 없는 서브쿼리
- 서브쿼리만 따로 돌려도 실행된다. 실행순서(서브쿼리 ➡ 메인쿼리)
파란색 : 메인쿼리 = 상위쿼리
빨간색 : 서브쿼리 = 하위쿼리 / 단독 실행이 가능하면 연관성 없는 서브쿼리
1-1) 연관성 없는 서브쿼리 : 단일행
1-2) 연관성 없는 서브쿼리 : 여러행
1-3) 연관성 없는 서브쿼리 : 복수컬럼
- IN을 기준으로 앞뒤 컬럼의 개수가 일치해야 한다.
2) 연관성 있는 서브쿼리
✨ 중간정리
- 성능으로 보면, join이 서브쿼리보다 조금은 좋다.
- 쿼리를 사용시, join을 우선적으로 먼저 작업해 본다.
- 조인으로 작업이 불가능하다고 판단되면, 서브쿼리를 이용한다.
- 조인을 서브쿼리로 변환은 가능하나, 서브쿼리를 조인으로 변환은 상대적이다.
728x90
'🏫 Open API_JAVA' 카테고리의 다른 글
[64일차] PL/SQL(익명블록, 변수, 상수, DML, 제어문, 함수) / 프로시저 (0) | 2022.10.25 |
---|---|
[63일차] 계층형 쿼리 / 계층형 쿼리 응용 / WITH 절 / 분석함수 와 window 함수 (0) | 2022.10.25 |
[61일차] 조인의 종류 / ANSI 내부 조인 / ANSI 외부 조인 (0) | 2022.10.23 |
[60일차] 변환 함수 / NULL 관련 함수 / 기타 함수 / GROUP BY 절과 HAVING 절 / ROLLUP 절과 CUBE 절 / 집합 연산자 (0) | 2022.10.21 |
[59일차] SQL 문장 살펴보기 (UPDATE / MERGE / DELETE / COMMIT과 ROLLBACK, TRUNCATE / ROWNUM / 함수) (0) | 2022.10.21 |