티스토리 뷰

DataBase

Common Table Expression

절취선 2022. 9. 17. 23:56
반응형

Common Table Expression

WITH 절과 함께 사용되는 CTE는 Mysql 8.0 부터 사용할 수 있다.

CTE는 기존의 뷰, 파생 테이블, 임시 테이블 등으로 사용되었던 것을 대신할 수 있으며, 더욱 간결한 식으로 표현할 수 있도록 구성할 수 있다.

어쩌면 SubQuery를 대신할 수 있다고 생각한다.

CTE 구성

CTE는 가상의 테이블을 하나 더 생성한다 라고 생각하면 이해할 수 있다.

WITH CTE_TableName(열 이름)
AS
(
<쿼리문>
)

위 명령어로 만들어낸 테이블을 쿼리문의 대상 테이블 이름으로 사용할 수 있다.

지역별로 성적을 구하는 테이블


WITH CTE_TableName(addr, student)
AS
(
select * from grade_Table group by addr;
)

select addr, avg(student) from CTE_TableName group by addr;

CTE , 뷰 차이점

CTE는 뷰와 그 용도는 비슷하지만 CTE는 1회성 쿼리문의 성질을 가지고 있다.

때문에 이미 사용한 CTE 테이블은 자동으로 삭제되어 다음 쿼리문에서는 사용할 수 없는 테이블이 되어진다.

정리

이전 복잡한 쿼리를 작성해야하는 경우 Sub쿼리문 혹은 임시 테이블을 만들어 가며
단계별로 테이블을 정리해 가며 올라갔던 방법과 비교한다면, 이전보다 더 쉽게 SQL문을 작설할 수 있을 것이다.

반응형

'DataBase' 카테고리의 다른 글

SUBQUERY와 JOIN 무엇을 선택해야할까?  (0) 2023.03.15
스핑크스 SQL의 특징과 문제점  (0) 2022.10.18
DB 암호화 기법  (1) 2022.09.16
제약조건 (CONSTRAINT)  (0) 2022.09.15
Union vs Union All 차이  (0) 2022.09.14
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/12   »
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 31
글 보관함