🏫 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