25

CTE: SQL의 변수 선언

Day 3: 쿼리가 너무 복잡한데 쪼갤 수 없나?

학습 목표

CTE의 기본 문법을 이해한다 서브쿼리와 CTE의 차이를 파악한다

CTE란?

Common Table Expression

  • WITH 절로 정의하는 임시 결과 집합
  • "SQL의 변수"처럼 중간 결과를 저장
  • 쿼리 내에서만 유효 (일회성)

기본 문법

에디터 로딩 중...

예시:

에디터 로딩 중...

CTE vs 서브쿼리

서브쿼리 (읽기 어려움)

에디터 로딩 중...

CTE (읽기 쉬움)

에디터 로딩 중...

CTE의 장점

장점설명
가독성각 단계에 이름을 붙여 의도 명확
재사용같은 CTE를 여러 번 참조 가능
디버깅각 CTE를 독립적으로 테스트 가능
유지보수수정할 부분을 쉽게 찾을 수 있음

여러 CTE 연결 (체이닝)

에디터 로딩 중...

파이프라인처럼 데이터가 흐른다!

에디터 로딩 중...

CTE 명명 규칙 (실무 팁)

좋은 이름:

  • filtered_orders - 무엇을 필터했는지
  • customer_totals - 무엇을 집계했는지
  • ranked_products - 무엇을 순위 매겼는지

나쁜 이름:

  • temp, tmp, t1, data - 의미 없음
  • cte1, cte2 - 그냥 번호

주의사항

에디터 로딩 중...

CTE는 한 쿼리 안에서만 존재하는 "일회용 테이블"이다.