【SQL Server】系统学习之一:表表达式
本节讨论的相关内容包括:视图、派生表、CTE、内联表值函数
场景:如果要查询一组数据(例如聚合数据,也就是几个表聚合在一起的数据),这些数据并未在数据库中以表的形式存在。
1、视图:通常用来分解大型的查询。使查询更容易,无需在临时表中复制或者存储数据。视图存于数据库,适用于所有批处理的数据库对象。不适用于单个T-SQL的批处理。
create view myview
as
select ......
2、派生表(内联视图)
select ....
from(select .....) as a
完全虚拟,优化器不会为它生成单独的计划。经过编译,会合并外部查询和内部查询。不会是性能降低或提高。
出现多引用时比较麻烦,需要多次重复定义、多次查询。
不允许使用order by(除非和top一起使用)
派生表不能使相关的(where 外部查询表.a=内部查询表.a)[除了apply]
3、CTE
可定义多个
with c1 as
()
c2 as
()
不可嵌套,但为了实现和嵌套派生表相同的效果,可以在c2中使用c1
多引用优势,在接下来的查询中,多次引用cte,替代派生表的重复定义,多次查询方案。 好处是写法简单,但是实质,仍然是重新组织查询,直接访问底层的对象。所以如果数据表中包含大量的行,此时应该考虑使用临时表或表变量,减少访问基础表的次数为一次。
很重要的一个用处:递归
with emp as
(
select empid,empname ,mgrid from employees where empid=5
union all
select empid,empname ,mgrid from employees as em
join emp on emp.mgrid=em.empid
)
select * from emp
option (maxrecursion 2) 最大递归次数
转载于:https://www.cnblogs.com/xyang/p/3885577.html
【SQL Server】系统学习之一:表表达式相关推荐
- sql server 2008学习3 表组织和索引组织
表组织 表包含在一个或多个分区中,每个分区在一个堆或一个聚集索引结构包含数据行.堆页或聚集索引页在一个或多个分配单元中进行管理,具体的分配单元数取决于数据行中的列类型. 聚集表.堆和索引 SQL Se ...
- 在Sql Server 2005使用公用表表达式CTE简化复杂的查询语句
公用表表达式CTE是Sql Server 2005引入的一种新的表表达式.CTE在许多方面都类似于派生表.逻辑上CTE是一个临时结果集,它仅仅存在于它发生的语句中.您可以在SELECT.INSERT. ...
- sql server系统表详细说明(二)(摘)
sysaltfiles 在特殊情况下,包含与数据库中的文件相对应的行.该表存储在 master 数据库中. 列名 数据类型 描述 fileid smallint 每个数据库的唯一文件标识号. grou ...
- sql server 2008学习1–系统数据库
master数据库 数据库记录 SQL Server 系统的所有系统级信息.这包括实例范围的元数据(例如登录帐户).端点.链接服务器和系统配置设置.此外,master 数据库还记录了所有其他数据库的存 ...
- sql server系统表详细说明(转)
sysaltfiles 主数据库 保存数据库的文件 syscharsets 主数据库字符集与排序顺序 sysconfigures 主数据库 配置选项 syscurconfigs 主数据库当前配置选 ...
- sql server 系统表 介绍
sysaltfiles 主数据库 保存数据库的文件 syscharsets 主数据库字符集与排序顺序 sysconfigures 主数据库 配置选项 syscurconfigs 主数据库当前配置选 ...
- SQL SERVER系统表
系统表查看 SQL SERVER系统表在系统数据库master中,其实确切的说这些系统表是视图,可以在master库下的视图下查看 常用系统表及功能 sysaltfiles 主数据库 保存数据库的文件 ...
- SQL Server数据库学习总结及T-SQL语法使用实战
SQL Server数据库及T-SQL实战 声明 名词解释 SQL Server数据库 安装sql server 数据库中的三种完整性 SQL Server数据库基本操作 创建数据库 指定多个数据库文 ...
- SQL Server 2005 术语词汇表
术语 定义 ActiveX 数据对象 (ActiveX Data Objects) 一种易于使用的应用程序编程接口 (API),用于封装 OLE DB 以在诸如 Visual Basic.Visual ...
- SQL SERVER深入学习学习资料参考
SQL SERVER深入学习学习资料参考 1.微软Webcast<sql server 2000完结篇>. 尽管微软Webcast出了很多关于Sql Server的系列课程,但是最为深入讲 ...
最新文章
- 第5次作业+105032014166+张珍珍
- 整理:warning LNK4098: 默认库“LIBCMT”与其他库的使用冲突;请使用 /NODEFAULTLIB:library
- Apriori算法进行关联分析(2)
- 干货 | 工行分布式数据库选型与大规模容器化实践
- 看了就会的 Node.js 三大基础模块常用 API
- metasploitable3渗透测试
- vue实现一个移动端屏蔽滑动的遮罩层
- python运维自动化老男孩_Day1 老男孩python自动化运维课程学习笔记
- 实验十OSPF路由聚合
- 【前端工程化】使用tippy.js代替自定义的popover/tooltip
- 元数据看板的初步设计思路
- Scroller类及scroll相关方法总结
- 齐了!百度、腾讯、滴滴、抖音的技术大佬都来了
- oracle 支持ltfs的厂商_甲骨文革新磁带存储StorageTek产品线
- windows聚焦壁纸不更新_win10系统锁屏壁纸聚焦不更新的解决方法
- 离散数学-3 命题逻辑的推理理论
- 蒲公英linux客户端登录提示密码错误的解决方法
- 圣思园——Java SE Lesson 5
- Azure学习笔记2.——六种虚拟网络连接
- el-image的fit属性