CTE是什么?
公用表表达式(CTE)能够被认为是在单个SELECT,INSERT,UPDATE,DELETE或CREATE VIEW语句的实行范围内定义的暂时效果集。CTE类似于派生表,由于它不作为对象存储,而且仅在查询时期延续。与派生表差别,CTE能够是自援用的,而且能够在统一查询中屡次援用。【相干视频教程引荐:MySQL教程】
CTE的构造
CTE由示意CTE的表达式称号,AS关键字和SELECT语句构成。定义CTE后,能够在SELECT,INSERT,UPDATE或DELETE语句中像表或视图一样援用它。CTE也能够在CREATE VIEW语句中用作其定义SELECT语句的一部分。
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中。
○ 替代视图:您能够用CTE替代视图。如果您没有建立视图对象的权限,或许您不想建立一个视图对象,由于它仅在此一个查询中运用,这很轻易。
○ 递归:运用CTE会建立递归查询,即能够挪用本身的查询。当您须要处置惩罚构造构造图平分层数据时,这很轻易。
○ 限定:战胜SELECT语句限定,比方援用本身(递归)或运用非确定性函数实行GROUP BY。
○ 排名:每当你想运用排名函数,如ROW_NUMBER(),RANK(),NTILE()等。
以上就是本篇文章的全部内容,愿望能对人人的进修有所协助。更多精彩内容人人能够关注ki4网相干教程栏目!!!
以上就是SQL中的CTE是什么的细致内容,更多请关注ki4网别的相干文章!