본문 바로가기

CTE2

Recursive CTE(Common Table Expression) 활용 이전에 작성한 내용(MySQL 8.0 신기능 CTE 활용) 중에 재귀 쿼리에 대한 내용을 언급했었습니다. SQL은 일반적으로 재귀 쿼리 구조에 좋지 않지만 이제 MySQL에서 재귀 쿼리를 작성할 수 있습니다. MySQL 8.0 이전에는 stored routin을 생성해야만 재귀 쿼리가 가능했습니다. 재귀 CTE 쿼리란 무엇입니까? 재귀 CTE는 자체 이름을 참조하는 하위 쿼리가 있는 CTE입니다. 다음과 같은 경우에 특히 유용합니다. 시리즈 생성 계층적 또는 트리 구조의 데이터 순회 재귀적 CTE의 주요 구성 요소를 살펴보겠습니다. 다음은 이를 생성하는 구문입니다. WITH RECURSIVE cte AS ( initial_query -- "seed" member UNION ALL recursive_que.. 2021. 8. 31.
MySQL 8.0 신기능 CTE(Common Table Expression) 활용 CTE란? CTE(Common Table Expression)는 서브 쿼리로 쓰이는 파생테이블(derived table)과 비슷한 개념으로 사용됩니다. CTE는 ANSI SQL 99의 일부이며 MySQL 8.0.1에서 도입되었습니다. CTE와 비교 대상으로는 VIEW가 있습니다. VIEW는 만들기 위해 권한이 필요하고 사전에 정의를 해야합니다. 반면, CTE는 권한이 필요 없고 하나의 쿼리문이 끝날때까지만 지속되는 일회성 테이블입니다. CTE는 주로 복잡한 쿼리문에서 코드의 가독성과 재사용성을 위해 파생테이블 대신 사용하기에 유용합니다. CTE를 사용하는 주요 이유는 다음과 같습니다. 쿼리의 가독성 향상 동일한 쿼리에서 여러 번 참조 가능 향상된 성능 사용자가 VIEW를 생성할 수 없는 경우 VIEW의 .. 2021. 8. 26.