>데이터 베이스 >MySQL 튜토리얼 >SQL에서 CTE란 무엇입니까?

SQL에서 CTE란 무엇입니까?

青灯夜游
青灯夜游원래의
2019-01-21 13:18:4714324검색

CTE는 항상 결과 집합을 반환하는 임시 명명된 결과 집합인 공통 테이블 표현식(Common Table Expression)을 나타냅니다. 이는 SQL 쿼리를 단순화하기 위해 표준 SQL에서 도입되었습니다. 다음 글에서는 CTE(공통 테이블 표현식)에 대해 소개하겠습니다. 도움이 되셨으면 좋겠습니다.

SQL에서 CTE란 무엇입니까?

CTE란 무엇인가요?

공통 테이블 표현식(CTE)은 단일 SELECT, INSERT, UPDATE, DELETE 또는 CREATE VIEW 문의 실행 범위 내에서 정의된 임시 결과 집합으로 생각할 수 있습니다. CTE는 개체로 저장되지 않고 쿼리 중에만 유지된다는 점에서 파생 테이블과 유사합니다. 파생 테이블과 달리 CTE는 자체 참조가 가능하며 동일한 쿼리에서 여러 번 참조될 수 있습니다. [추천 관련 동영상 튜토리얼: MySQL Tutorial]

CTE

CTE의 구조는 CTE를 나타내는 표현식 이름, AS 키워드 및 SELECT 문으로 구성됩니다. CTE가 정의된 후에는 SELECT, INSERT, UPDATE 또는 DELETE 문에서 테이블이나 뷰처럼 참조될 수 있습니다. CTE는 SELECT 문을 정의하는 일부로 CREATE VIEW 문에서 사용될 수도 있습니다.

CTE의 기본 구문 구조는 다음과 같습니다.

WITH Expression_Name [ ( ColumnName [1,...n] ) ]
AS
( CTE query definition )

설명: SELECT, INSERT, UPDATE, DELETE 또는 MERGE 문 바로 앞에 WITH 절을 추가하여 CTE를 정의할 수 있습니다. WITH 절에는 쉼표로 구분된 하나 이상의 CTE가 포함될 수 있습니다.

CTE 실행 선언은 다음과 같습니다.

SELECT <column_list>
FROM expression_name;

CTE 유형

CTE에는 재귀적 및 비재귀적 두 가지 유형이 있습니다.

재귀 CTE: 자신을 참조하는 공통 테이블 표현식입니다.

비재귀 CTE는 이름에서 알 수 있듯이 재귀를 사용하지 않습니다.

CTE 사용의 이점

가독성: CTE는 가독성을 향상시킵니다. 모든 쿼리 논리를 하나의 큰 쿼리로 묶는 대신 나중에 문에서 결합할 여러 CTE를 만듭니다. 이를 통해 필요한 데이터 청크를 가져와 최종 SELECT에서 결합할 수 있습니다.

Replace View: 뷰를 CTE로 바꿀 수 있습니다. 이는 뷰 개체를 생성할 수 있는 권한이 없거나 이 쿼리에서만 사용되므로 뷰 개체를 생성하고 싶지 않은 경우에 편리합니다.

Recursive: CTE를 사용하면 재귀 쿼리가 생성됩니다. 즉, 자신만의 쿼리를 호출할 수 있습니다. 이는 조직도와 같은 계층적 데이터로 작업해야 할 때 편리합니다.

제한 사항 : 자체 참조(재귀적으로) 또는 비결정적 함수를 사용하여 GROUP BY를 수행하는 등 SELECT 문의 제한 사항을 극복합니다.

Ranking: ROW_NUMBER(), RANK(), NTILE() 등과 같은 순위 기능을 사용하고 싶을 때마다.

위 내용은 이 글의 전체 내용입니다. 모든 분들의 공부에 도움이 되었으면 좋겠습니다. 더 흥미로운 내용을 보려면 PHP 중국어 웹사이트의 관련 튜토리얼 열을 주의 깊게 살펴보세요! ! !

위 내용은 SQL에서 CTE란 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.