Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 |
Tags
- gif초기화
- react
- singleton
- Grid
- 싱글톤컨테이너
- API
- 코딩
- useSearchParams
- 넥사크로loadingimage
- 리액트
- State
- aws
- DB #데이터베이스
- singleton container
- 로딩이미지변경
- 톰캣실행
- BEAN
- decoratetext
- Spring
- 넥사크로
- setrealrowsize
- frontend
- HTML
- WITH절
- usePrams
- loadingimage
- CSS
- 상태관리
- 빈
- 싱글톤
Archives
- Today
- Total
All Day Tired
CTE 본문
쿼리를 짜는데 검색하고 검색하다 보니 CTE라고 처음 보게 되어서 정리.
CTE : Common Table Expression
- 공통 테이블 표현식, 일반 테이블 표현식 등으로 불림
- with절을 사용하여 정의
- with절을 통해서 뽑아내고 싶은 결과를 임시의 테이블로 정의한다고 보면 됨(결과의 집합)
- 보통 트리구조로 select할 때 많이 쓰임
이러한 특징으로 view와 비교를 많이 함
CTE vs View
| CTE | View | |
| 유효 범위 | 쿼리 내로 제한 쿼리가 실행되는 동안만 존재하고, 쿼리가 끝나면 사라짐 주로 단일 쿼리에서 여러 번 참조되거나 복잡한 쿼리의 일부분으로 사용 |
데이터베이스에 영구적으로 저장 일단 생성되면, 데이터베이스의 다른 모든 쿼리에서 참조 여러 쿼리에서 반복적으로 사용 OK |
| 재사용성 | 제한적 동일 쿼리 내에서만 재사용 다른 쿼리에서 다시 사용하려면 CTE를 재정의 필 |
여러 쿼리에서 재사용 (데이터베이스에 저장되기 때문) |
| 성능 영향 | 인라인화되어 실행 성능에 큰 영향 X 재귀적 CTE의 경우 큰 데이터를 처리할 때 성능에 영향 |
참조할 때마다 쿼리가 실행 복잡한 뷰나 중첩된 뷰는 성능에 영향 물리적 뷰(Materialized View)를 사용할 경우, 데이터가 미리 계산되어 저장되므로 성능 향상 |
| 갱신 가능성 | 단순히 쿼리의 일부분 갱신(INSERT, UPDATE, DELETE)을 지원 X |
단순한 뷰는 데이터 갱신이 가능 복잡한 뷰(예: 조인, 집계 함수 포함)는 갱신이 불가능할 수도 특정 조건을 만족하면 INSTEAD OF 트리거를 통해 갱신 가능 |
CTE는 with절로 쓰인다는데 그러면 with절의 문법?
with절
WITH
별칭1 AS (
SELECT
컬럼명1
, 컬럼명2
, ...
FROM 테이블명1
)
, 별칭2 AS (
SELECT
컬럼명1
, 컬럼명2
, ...
FROM 테이블명2
)
SELECT
컬럼명1
, 컬럼명2
FROM 별칭1
, 별칭2
WHERE 별칭1.컬럼명1 = 별칭2.컬럼명1;'Back > DB' 카테고리의 다른 글
| MsSQL 문자열을 날짜 및/또는 시간으로 변환하지 못했습니다. (0) | 2025.07.24 |
|---|---|
| 오라클 날짜 DATE 소요시간 (0) | 2024.09.12 |
| PersistenceException Cause : java.lang.NumberFormatException: for input String: (0) | 2024.09.10 |
| with절 트리구조 검색 조회 시 상위노드도 조회 (0) | 2024.09.04 |
| 인덱스 컬럼 변경 주의(where 조건) (0) | 2024.02.15 |
Comments