SQL中的CTE有哪些
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的声明是:
SELECTFROM expression_name;
CTE的类型
CTE有两品种型:递归和非递归。
递归CTE:是援用本身的常用表表达式。
非递归CTE,望文生义,不运用递归;他们不参照 本人。
运用CTE的益处
○ 可读性:CTE提高了可读性。而不是将所有查询逻辑都集中到一个大型查询中,而是新建几个CTE,它们将在语句的背面组合。这使您可以获得所需的数据块,并将它们组合在终究的SELECT中。
○ 替换视图:您可以用CTE替代视图。要是您没有新建视图对象的权限,或者您不想新建一个视图对象,由于它仅在此一个查询中运用,这很利便。
○ 递归:运用CTE会新建递归查询,即可以调取本身的查询。当您需要处置组织构造图等分层数据时,这很利便。
○ 限定:克制SELECT语句限定,例如援用本身(递归)或运用非肯定性函数施行GROUP BY。
○ 排行:每当你想运用排行函数,如ROW_NUMBER(),RANK(),NTILE()等。
以上就是本篇文章的全部内容,但愿能对大家的学习有所帮忙。更多出色内容大家可以关注 百分百源码网 相干教程栏目!!!
以上就是SQL中的CTE有哪些的细致内容,更多请关注 百分百源码网 其它相干文章!