코딩기록 저장소 🐕/데이터베이스

{서브쿼리 WITH 콩}

kimkongmom 2023. 7. 7. 10:50

 

 

 

 

 

 

역대급 졸린 오늘입니다. 

외우자 싸우자 나가자 이기자

 

 

서브쿼리 (SUB QUERY)

    1. 메인 쿼리에 포함되는 하위쿼리를 서브쿼리라고 한다.
    2. 서브 쿼리를 먼저 실행해서 그 결과를 메인쿼리에 전달한다.
    3. 종류
        1) SELECT 절 : 스칼라 서브쿼리
        2)   FROM 절 : 인라인 뷰( INLINE VIEW)
        3)  WHERE 절 : 단일 행 서브쿼리 (결과가 1개)
                       다중 행 서브쿼리 (결과가 N개)

 

단일 행 서브쿼리 (SINGLE ROW SUB QUERY)

    1. 결과가 1행이다. (1개이다.)
    2. 단일 행 서브쿼리인 경우
        1) WHERE 절에서 사용한 칼럼이 PK 또는 UNIQUE (중복이없는 칼럼 동등 비교 했을때) 칼럼인 경우
        2) 통계 함수를 사용한 경우 
    3. 단일 행 서브쿼리 연산자
        =, !=, >, >=, <, <=

 

다중 행 서브쿼리 (MULTI ROW SUB QUERY)

    1. 결과가 N행이다.
    2. 단일행이 아니면 다중 행
    3. 다중행 서브쿼리 연산자
        IN, ANY, ALL 등

 

▶ WHERE 절의 서브쿼리

기본 예시

 

 

 

 

→ 중복이 있는것에 대해서는 다중으로 처리하기 때문에 IN 사용!

 

▶ FROM절의  서브쿼리

 

FROM

 

 

ROW_NUMBER() OVER(ORDER BY SALARY DESC) → 이부분 뭔지 기억나시나요 저는 기억이 안나더라구요

이번기회에 머리에 넣겠습니다. 행번호 구할때  쓰는 기타함수!!

 

위에 행번호나 , RN, AN 처럼 AS 로 별명을 정한다음, FROM절 서브쿼리를 사용하면 실행순서가 FROM이 첫번째이기 때문에  WHERE 절에서 사용 가능하게 됩니다.

 

--여기 복습다시하기

▶ SELECT절의  서브쿼리

 

캬 어렵다

 

아직 이해를 하지못했지만 알면 좋은 WITH

 

 WITH
   ① 자주 사용하거나 복잡한 쿼리문을 WITH 절의 코드 블록으로 등록시켜 놓을 수 있다.
   ② WITH 절의 코드 블록은 임시로 저장되기 때문에 곧바로 사용해야 한다.
   ③ 쿼리문의 가독성이 좋아진다. 

 

 

'코딩기록 저장소 🐕 > 데이터베이스' 카테고리의 다른 글

{문제풀이 복습...}  (0) 2023.07.11
{집합, 인덱스, 뷰,...}  (0) 2023.07.10
{DQL마무리, 조인}  (0) 2023.07.06
7{ 날 힘들게 하는 함수 }  (0) 2023.07.05
{ DML, DQL }  (0) 2023.07.04