CTE与视图之比较

一、CTE是什么

CTE是指公用表表达式(Common Table Expression)。它是一种临时结果集,可以在Select、Insert、Update、Delete语句的执行范围内定义并使用。也可用在 CREATE VIEW 语句中,作为该语句的 SELECT 定义语句的一部分。公用表表达式可以包括对自身的引用。这时它被称为递归公用表表达式。

语法:WITH < Expression_Name > [ ( Column_Name [ ,......n ] ) ]

              AS

                    (CTE_query_definition)

 

二、视图

视图是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。视图在数据库中并不是以数据值存储集形式存在,除非是索引视图。行和列数据来自由定义视图的查询所引用的表,并且在引用视图时动态生成。

|语法:CREATE VIEW View_Name

               AS

                        Select_Statement [ ; ]

 

三、CTE与视图的不同:

1.可以创建递归查询

2.不用将定义存贮在元数据中(即不存贮为对象)

3.在同一语句中多次引用生成的表

4.可以在用户定义的例程(如函数、存储过程、触发器或视图)中定义 CTE

 

总之,使用 CTE 可以获得提高可读性(便于在代码中多次引用)和轻松维护复杂查询的优点(MSDN这样写的,呵呵)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值