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
													
											
												
												- singleton container
- setrealrowsize
- singleton
- HTML
- WITH절
- BEAN
- 톰캣실행
- 상태관리
- gif초기화
- Spring
- State
- 리액트
- 넥사크로
- 넥사크로loadingimage
- DB #데이터베이스
- 빈
- react
- 로딩이미지변경
- usePrams
- loadingimage
- frontend
- aws
- CSS
- 싱글톤컨테이너
- useSearchParams
- decoratetext
- useNavigate
- 코딩
- 싱글톤
- Grid
													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
			
		
	
               
           
					
					
					
					
					
					
				