SQL中的CTE有什么用

97次阅读
没有评论

共计 1129 个字符,预计需要花费 3 分钟才能阅读完成。

自动写代码机器人,免费开通

丸趣 TV 小编给大家分享一下 SQL 中的 CTE 有什么用,希望大家阅读完这篇文章后大所收获,下面让我们一起去探讨吧!

CTE 表示公用表表达式,是一个临时命名结果集,始终返回结果集。它是为了简化 SQL 查询,而被标准 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] ) ]
(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() 等。

看完了这篇文章,相信你对 SQL 中的 CTE 有什么用有了一定的了解,想了解更多相关知识,欢迎关注丸趣 TV 行业资讯频道,感谢各位的阅读!

向 AI 问一下细节

丸趣 TV 网 – 提供最优质的资源集合!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-12-18发表,共计1129字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)