🏫 Open API_JAVA
[62일차] 서브 쿼리
Dorothy_YANG
2022. 10. 24. 17:03
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