书籍详情
SQL Server 2012 T-SQL基础教程
作者:(美)Itzik Ben-Gan 著,张洪举,李联国,张昊天 译
出版社:人民邮电出版社
出版时间:2013-12-01
ISBN:9787115332905
定价:¥69.00
购买这本书可以去
内容简介
《SQL Server 2012 T-SQL基础教程》全面系统地介绍了SQL Server 2012 T-SQL技术,包括T-SQL查询和编程的背景、单表查询、联接、子查询、表表达式、集合运算符、查询、数据修改、事务和并发处理、可编程对象等内容。《SQL Server 2012 T-SQL基础教程》提供了一个附录“入门指南”,来帮助你设置环境、下载本书的源代码、安装TSQL2012示例数据库、开始编写SQL Server代码,并了解如何使用SQL Server联机丛书获得帮助。本书还提供了大量的练习,帮助读者实践所学、快速上手。《SQL Server 2012 T-SQL基础教程》主要针对具有很少或是没有经验的T-SQL学习者,适用于T-SQL开发人员、DBA、BI从业者、报表编写者、分析师以及刚开始使用SQL Server并且需要使用Transact-SQL编写查询、开发代码的用户。
作者简介
Itzik Ben-Gan,Solid Quality Learning的导师和创始人。从1999年开始,他一直是Microsoft SQL Server MVP(最有价值专家),并在全世界已经开展过无数次T-SQL查询、T-SQL优化和编程方面的培训。Itzik是Microsoft SQL Server方面几本著作的作者。他在SQL Server Magazine和MSDN上发表了许多文章和白皮书。Itzik被邀请在许多会议上做报告,包括TechEd、DevWeek、世界各地的各种SQL用户组、PASS、SQL Server Magazine Connections和Solid Quality Learning的会议。 从1992年开始,Itzik就一直致力于涉及各种数据库和计算机系统相关技术的多个课题。除了帮助顾客处理紧迫的要求、修复问题、优化数据库、教学和担任顾问以外,他还帮助开发人员和数据库管理员转变关系/基于集合的理念,改善他们编写代码的性能和可维护性。Itzik擅长T-SQL查询、查询优化、编程和内部原理,此外他还精通其他的数据库领域。1999年,Itzik创立以色列SQLServer和OLAP用户组,一直管理至今。
目录
第1章 T-SQL查询和编程的背景
1.1 理论背景
1.1.1 SQL
1.1.2 集合理论
1.1.3 谓词逻辑
1.1.4 关系模型
1.1.5 数据生命周期
1.2 SQL Server体系结构
1.2.1 SQL Server的ABC特色
1.2.2 SQL Server实例
1.2.3 数据库
1.2.4 架构和对象
1.3 创建表和定义数据完整性
1.3.1 创建表
1.3.2 定义数据完整性
1.4 小结
第2章 单表查询
2.1 SELECT语句的元素
2.1.1 FROM子句
2.1.2 WHERE子句
2.1.3 GROUP BY子句
2.1.4 HAVING子句
2.1.5 SELECT子句
2.1.6 ORDER BY子句
2.1.7 TOP和OFFSET-FETCH筛选
2.1.8 开窗函数速览
2.2 谓词和运算符
2.3 CASE表达式
2.4 NULL标记
2.5 同时操作
2.6 使用字符数据
2.6.1 数据类型
2.6.2 排序规则
2.6.3 运算符和函数
2.7 使用日期和时间数据
2.7.1 日期和时间数据类型
2.7.2 日期和时间常量
2.7.3 独立使用日期和时间
2.7.4 筛选日期范围
2.7.5 日期和时间函数
2.8 查询元数据
2.8.1 目录视图
2.8.2 信息架构视图
2.8.3 系统存储过程和函数
2.9 小结
2.10 练习
2.10.1 练习
2.10.2 练习
2.10.3 练习
2.10.4 练习
2.10.5 练习
2.10.6 练习
2.10.7 练习
2.10.8 练习
2.11 解决方案
2.11.1 解决方案
2.11.2 解决方案
2.11.3 解决方案
2.11.4 解决方案
2.11.5 解决方案
2.11.6 解决方案
2.11.7 解决方案
2.11.8 解决方案
第3章 联接
3.1 交叉联接
3.1.1 ANSI SQL-92语法
3.1.2 ANSI SQL-89语法
3.1.3 自交叉联接
3.1.4 生成数字表
3.2 内部联接
3.2.1 ANSI SQL-92语法
3.2.2 ANSI SQL-89语法
3.2.3 内部联接安全性
3.3 更多联接示例
3.3.1 复合联接
3.3.2 不等联接
3.3.3 多联接查询
3.4 外部联接
3.4.1 外部联接的基础知识
3.4.2 超越外部联接基础知识
3.5 小结
3.6 练习
3.6.1 练习1-
3.6.2 练习1-2(可选的高级练习)
3.6.3 练习
3.6.4 练习
3.6.5 练习
3.6.6 练习
3.6.7 练习6(可选的高级练习)
3.6.8 练习7(可选的高级练习)
3.7 解决方案
3.7.1 解决方案1-
3.7.2 解决方案1-
3.7.3 解决方案
3.7.4 解决方案
3.7.5 解决方案
3.7.6 解决方案
3.7.7 解决方案
3.7.8 解决方案
第4章 子查询
4.1 自包含子查询
4.1.1 自包含标量子查询示例
4.1.2 自包含多值子查询示例
4.2 相关子查询
4.2.1 EXISTS谓词
4.3 超越子查询基础知识
4.3.1 返回前一个或下一个值
4.3.2 使用运行聚合
4.3.3 不当子查询处理
4.4 小结
4.5 练习
4.5.1 练习
4.5.2 练习2(可选的高级练习)
4.5.3 练习
4.5.4 练习
4.5.5 练习
4.5.6 练习
4.5.7 练习7(可选的高级练习)
4.5.8 练习8(可选的高级练习)
4.6 解决方案
4.6.1 解决方案
4.6.2 解决方案
4.6.3 解决方案
4.6.4 解决方案
4.6.5 解决方案
4.6.6 解决方案
4.6.7 解决方案
4.6.8 解决方案
第5章 表表达式
5.1 派生表
5.1.1 分配列别名
5.1.2 使用参数
5.1.3 嵌套
5.1.4 多个引用
5.2 公用表表达式
5.2.1 在CTE中分配列别名
5.2.2 在CTE中使用参数
5.2.3 定义多个CTE
5.2.4 CTE中的多个引用
5.2.5 递归CTE
5.3 视图
5.3.1 视图和ORDER BY子句
5.3.2 视图选项
5.4 内嵌表值函数
5.5 APPLY运算符
5.6 小结
5.7 练习
5.7.1 练习1-
5.7.2 练习1-
5.7.3 练习2-
5.7.4 练习2-
5.7.5 练习3(可选的高级练习)
5.7.6 练习4-
5.7.7 练习4-2(可选的高级练习)
5.7.8 练习5-
5.7.9 练习5-
5.8 解决方案
5.8.1 解决方案1-
5.8.2 解决方案1-
5.8.3 解决方案2-
5.8.4 解决方案2-
5.8.5 解决方案
5.8.6 解决方案4-
5.8.7 解决方案4-
5.8.8 解决方案5-
5.8.9 解决方案5-
第6章 集合运算符
6.1 UNION运算符
6.1.1 UNION ALL多元集合运算符
6.1.2 UNION非重复项集合运算符
6.2 INTERSECT运算符
6.2.1 INTERSECT非重复项集合运算符
6.2.2 INTERSECT ALL多元集合运算符
6.3 EXCEPT运算符
6.3.1 EXCEPT非重复项集合运算符
6.3.2 EXCEPT ALL多元集合运算符
6.4 优先级
6.5 规避不支持的逻辑阶段
6.6 小结
6.7 练习
6.7.1 练习
6.7.2 练习
6.7.3 练习
6.7.4 练习
6.7.5 练习5(可选的高级练习)
6.8 解决方案
6.8.1 解决方案
6.8.2 解决方案
6.8.3 解决方案
6.8.4 解决方案
6.8.5 解决方案
第7章 查询
7.1 开窗函数
7.1.1 排名开窗函数
7.1.2 偏移开窗函数
7.1.3 聚合开窗函数
7.2 透视数据
7.2.1 使用标准SQL透视
7.2.2 使用本地T-SQL PIVOT运算符透视
7.3 逆透视数据
7.3.1 使用标准SQL逆透视
7.3.2 使用本地T-SQL UNPIVOT运算符逆透视
7.4 分组集
7.4.1 GROUPING SETS从属子句
7.4.2 CUBE从属子句
7.4.3 ROLLUP从属子句
7.4.4 GROUPING和GROUPING_ID函数
7.5 小结
7.6 练习
7.6.1 练习
7.6.2 练习
7.6.3 练习
7.6.4 练习
7.6.5 练习
7.7 解决方案
7.7.1 解决方案
7.7.2 解决方案
7.7.3 解决方案
7.7.4 解决方案
7.7.5 解决方案
第8章 数据修改
8.1 插入数据
8.1.1 INSERT VALUES语句
8.1.2 INSERT SELECT语句
8.1.3 INSERT EXEC语句
8.1.4 SELECT INTO语句
8.1.5 BULK INSERT语句
8.1.6 标识列属性和序列对象
8.2 删除数据
8.2.1 DELETE语句
8.2.2 TRUNCATE语句
8.2.3 基于联接的DELETE
8.3 更新数据
8.3.1 UPDATE语句
8.3.2 基于联接的UPDATE
8.3.3 赋值UPDATE
8.4 合并数据
8.5 通过表表达式修改数据
8.6 使用TOP和OFFSET-FETCH修改
8.7 OUTPUT子句
8.7.1 INSERT与OUTPUT
8.7.2 DELETE与OUTPUT
8.7.3 UPDATE与OUTPUT
8.7.4 MERGE与OUTPUT
8.7.5 可组合的DML
8.8 小结
8.9 练习
8.9.1 练习
8.9.2 练习1-
8.9.3 练习1-
8.9.4 练习1-
8.9.5 练习
8.9.6 练习
8.9.7 练习
8.9.8 练习
8.9.9 练习
8.10 解决方案
8.10.1 解决方案1-
8.10.2 解决方案1-
8.10.3 解决方案1-
8.10.4 解决方案
8.10.5 解决方案
8.10.6 解决方案
8.10.7 解决方案
第9章 事务和并发处理
9.1 事务
9.2 锁和阻塞
9.2.1 锁
9.2.2 排除阻塞
9.3 隔离级别
9.3.1 READ UNCOMMITTED隔离级别
9.3.2 READ COMMITTED隔离级别
9.3.3 REPEATABLE READ隔离级别
9.3.4 SERIALIZABLE隔离级别
9.3.5 基于行版本的隔离级别
9.3.6 隔离级别总结
9.4 死锁
9.5 小结
9.6 练习
9.6.1 练习1-
9.6.2 练习1-
9.6.3 练习1-
9.6.4 练习1-
9.6.5 练习1-
9.6.6 练习1-
9.6.7 练习2-
9.6.8 练习2-
9.6.9 练习2-
9.6.10 练习2-
9.6.11 练习2-
9.6.12 练习2-
9.6.13 练习3-
9.6.14 练习3-
9.6.15 练习3-
9.6.16 练习3-
9.6.17 练习3-
9.6.18 练习3-
9.6.19 练习3-
第10章 可编程对象
10.1 变量
10.2 批
10.2.1 以批为单元的语法分析
10.2.2 批和变量
10.2.3 不能被组合在同一个批中的语句
10.2.4 以批为单元的解析
10.2.5 GO n选项
10.3 流元素
10.3.1 IF...ELSE流元素
10.3.2 WHILE流元素
10.3.3 使用IF和WHILE的示例
10.4 游标
10.5 临时表
10.5.1 本地临时表
10.5.2 全局临时表
10.5.3 表变量
10.5.4 表类型
10.6 动态SQL
10.6.1 EXEC命令
10.6.2 sp_executesql存储过程
10.6.3 使用动态SQL的PIVOT
10.7 例程
10.7.1 用户定义函数
10.7.2 存储过程
10.7.3 触发器
10.8 错误处理
10.9 小结
附录A 入门指南
A.1 SQL Database入门
A.2 安装(企业)内部部署的SQL Server
A.2.1 获取SQL Server
A.2.2 创建一个用户账户
A.2.3 安装的必要条件
A.2.4 安装数据库引擎、文档和工具
A.3 下载源代码和安装示例数据库
A.3.1 在(企业)内部部署的SQL Server实例中创建并填充示例数据库
A.3.2 在SQL Database中创建并填充示例数据库
A.4 使用SQL Server Management Studio
A.5 使用SQL Server联机丛书
1.1 理论背景
1.1.1 SQL
1.1.2 集合理论
1.1.3 谓词逻辑
1.1.4 关系模型
1.1.5 数据生命周期
1.2 SQL Server体系结构
1.2.1 SQL Server的ABC特色
1.2.2 SQL Server实例
1.2.3 数据库
1.2.4 架构和对象
1.3 创建表和定义数据完整性
1.3.1 创建表
1.3.2 定义数据完整性
1.4 小结
第2章 单表查询
2.1 SELECT语句的元素
2.1.1 FROM子句
2.1.2 WHERE子句
2.1.3 GROUP BY子句
2.1.4 HAVING子句
2.1.5 SELECT子句
2.1.6 ORDER BY子句
2.1.7 TOP和OFFSET-FETCH筛选
2.1.8 开窗函数速览
2.2 谓词和运算符
2.3 CASE表达式
2.4 NULL标记
2.5 同时操作
2.6 使用字符数据
2.6.1 数据类型
2.6.2 排序规则
2.6.3 运算符和函数
2.7 使用日期和时间数据
2.7.1 日期和时间数据类型
2.7.2 日期和时间常量
2.7.3 独立使用日期和时间
2.7.4 筛选日期范围
2.7.5 日期和时间函数
2.8 查询元数据
2.8.1 目录视图
2.8.2 信息架构视图
2.8.3 系统存储过程和函数
2.9 小结
2.10 练习
2.10.1 练习
2.10.2 练习
2.10.3 练习
2.10.4 练习
2.10.5 练习
2.10.6 练习
2.10.7 练习
2.10.8 练习
2.11 解决方案
2.11.1 解决方案
2.11.2 解决方案
2.11.3 解决方案
2.11.4 解决方案
2.11.5 解决方案
2.11.6 解决方案
2.11.7 解决方案
2.11.8 解决方案
第3章 联接
3.1 交叉联接
3.1.1 ANSI SQL-92语法
3.1.2 ANSI SQL-89语法
3.1.3 自交叉联接
3.1.4 生成数字表
3.2 内部联接
3.2.1 ANSI SQL-92语法
3.2.2 ANSI SQL-89语法
3.2.3 内部联接安全性
3.3 更多联接示例
3.3.1 复合联接
3.3.2 不等联接
3.3.3 多联接查询
3.4 外部联接
3.4.1 外部联接的基础知识
3.4.2 超越外部联接基础知识
3.5 小结
3.6 练习
3.6.1 练习1-
3.6.2 练习1-2(可选的高级练习)
3.6.3 练习
3.6.4 练习
3.6.5 练习
3.6.6 练习
3.6.7 练习6(可选的高级练习)
3.6.8 练习7(可选的高级练习)
3.7 解决方案
3.7.1 解决方案1-
3.7.2 解决方案1-
3.7.3 解决方案
3.7.4 解决方案
3.7.5 解决方案
3.7.6 解决方案
3.7.7 解决方案
3.7.8 解决方案
第4章 子查询
4.1 自包含子查询
4.1.1 自包含标量子查询示例
4.1.2 自包含多值子查询示例
4.2 相关子查询
4.2.1 EXISTS谓词
4.3 超越子查询基础知识
4.3.1 返回前一个或下一个值
4.3.2 使用运行聚合
4.3.3 不当子查询处理
4.4 小结
4.5 练习
4.5.1 练习
4.5.2 练习2(可选的高级练习)
4.5.3 练习
4.5.4 练习
4.5.5 练习
4.5.6 练习
4.5.7 练习7(可选的高级练习)
4.5.8 练习8(可选的高级练习)
4.6 解决方案
4.6.1 解决方案
4.6.2 解决方案
4.6.3 解决方案
4.6.4 解决方案
4.6.5 解决方案
4.6.6 解决方案
4.6.7 解决方案
4.6.8 解决方案
第5章 表表达式
5.1 派生表
5.1.1 分配列别名
5.1.2 使用参数
5.1.3 嵌套
5.1.4 多个引用
5.2 公用表表达式
5.2.1 在CTE中分配列别名
5.2.2 在CTE中使用参数
5.2.3 定义多个CTE
5.2.4 CTE中的多个引用
5.2.5 递归CTE
5.3 视图
5.3.1 视图和ORDER BY子句
5.3.2 视图选项
5.4 内嵌表值函数
5.5 APPLY运算符
5.6 小结
5.7 练习
5.7.1 练习1-
5.7.2 练习1-
5.7.3 练习2-
5.7.4 练习2-
5.7.5 练习3(可选的高级练习)
5.7.6 练习4-
5.7.7 练习4-2(可选的高级练习)
5.7.8 练习5-
5.7.9 练习5-
5.8 解决方案
5.8.1 解决方案1-
5.8.2 解决方案1-
5.8.3 解决方案2-
5.8.4 解决方案2-
5.8.5 解决方案
5.8.6 解决方案4-
5.8.7 解决方案4-
5.8.8 解决方案5-
5.8.9 解决方案5-
第6章 集合运算符
6.1 UNION运算符
6.1.1 UNION ALL多元集合运算符
6.1.2 UNION非重复项集合运算符
6.2 INTERSECT运算符
6.2.1 INTERSECT非重复项集合运算符
6.2.2 INTERSECT ALL多元集合运算符
6.3 EXCEPT运算符
6.3.1 EXCEPT非重复项集合运算符
6.3.2 EXCEPT ALL多元集合运算符
6.4 优先级
6.5 规避不支持的逻辑阶段
6.6 小结
6.7 练习
6.7.1 练习
6.7.2 练习
6.7.3 练习
6.7.4 练习
6.7.5 练习5(可选的高级练习)
6.8 解决方案
6.8.1 解决方案
6.8.2 解决方案
6.8.3 解决方案
6.8.4 解决方案
6.8.5 解决方案
第7章 查询
7.1 开窗函数
7.1.1 排名开窗函数
7.1.2 偏移开窗函数
7.1.3 聚合开窗函数
7.2 透视数据
7.2.1 使用标准SQL透视
7.2.2 使用本地T-SQL PIVOT运算符透视
7.3 逆透视数据
7.3.1 使用标准SQL逆透视
7.3.2 使用本地T-SQL UNPIVOT运算符逆透视
7.4 分组集
7.4.1 GROUPING SETS从属子句
7.4.2 CUBE从属子句
7.4.3 ROLLUP从属子句
7.4.4 GROUPING和GROUPING_ID函数
7.5 小结
7.6 练习
7.6.1 练习
7.6.2 练习
7.6.3 练习
7.6.4 练习
7.6.5 练习
7.7 解决方案
7.7.1 解决方案
7.7.2 解决方案
7.7.3 解决方案
7.7.4 解决方案
7.7.5 解决方案
第8章 数据修改
8.1 插入数据
8.1.1 INSERT VALUES语句
8.1.2 INSERT SELECT语句
8.1.3 INSERT EXEC语句
8.1.4 SELECT INTO语句
8.1.5 BULK INSERT语句
8.1.6 标识列属性和序列对象
8.2 删除数据
8.2.1 DELETE语句
8.2.2 TRUNCATE语句
8.2.3 基于联接的DELETE
8.3 更新数据
8.3.1 UPDATE语句
8.3.2 基于联接的UPDATE
8.3.3 赋值UPDATE
8.4 合并数据
8.5 通过表表达式修改数据
8.6 使用TOP和OFFSET-FETCH修改
8.7 OUTPUT子句
8.7.1 INSERT与OUTPUT
8.7.2 DELETE与OUTPUT
8.7.3 UPDATE与OUTPUT
8.7.4 MERGE与OUTPUT
8.7.5 可组合的DML
8.8 小结
8.9 练习
8.9.1 练习
8.9.2 练习1-
8.9.3 练习1-
8.9.4 练习1-
8.9.5 练习
8.9.6 练习
8.9.7 练习
8.9.8 练习
8.9.9 练习
8.10 解决方案
8.10.1 解决方案1-
8.10.2 解决方案1-
8.10.3 解决方案1-
8.10.4 解决方案
8.10.5 解决方案
8.10.6 解决方案
8.10.7 解决方案
第9章 事务和并发处理
9.1 事务
9.2 锁和阻塞
9.2.1 锁
9.2.2 排除阻塞
9.3 隔离级别
9.3.1 READ UNCOMMITTED隔离级别
9.3.2 READ COMMITTED隔离级别
9.3.3 REPEATABLE READ隔离级别
9.3.4 SERIALIZABLE隔离级别
9.3.5 基于行版本的隔离级别
9.3.6 隔离级别总结
9.4 死锁
9.5 小结
9.6 练习
9.6.1 练习1-
9.6.2 练习1-
9.6.3 练习1-
9.6.4 练习1-
9.6.5 练习1-
9.6.6 练习1-
9.6.7 练习2-
9.6.8 练习2-
9.6.9 练习2-
9.6.10 练习2-
9.6.11 练习2-
9.6.12 练习2-
9.6.13 练习3-
9.6.14 练习3-
9.6.15 练习3-
9.6.16 练习3-
9.6.17 练习3-
9.6.18 练习3-
9.6.19 练习3-
第10章 可编程对象
10.1 变量
10.2 批
10.2.1 以批为单元的语法分析
10.2.2 批和变量
10.2.3 不能被组合在同一个批中的语句
10.2.4 以批为单元的解析
10.2.5 GO n选项
10.3 流元素
10.3.1 IF...ELSE流元素
10.3.2 WHILE流元素
10.3.3 使用IF和WHILE的示例
10.4 游标
10.5 临时表
10.5.1 本地临时表
10.5.2 全局临时表
10.5.3 表变量
10.5.4 表类型
10.6 动态SQL
10.6.1 EXEC命令
10.6.2 sp_executesql存储过程
10.6.3 使用动态SQL的PIVOT
10.7 例程
10.7.1 用户定义函数
10.7.2 存储过程
10.7.3 触发器
10.8 错误处理
10.9 小结
附录A 入门指南
A.1 SQL Database入门
A.2 安装(企业)内部部署的SQL Server
A.2.1 获取SQL Server
A.2.2 创建一个用户账户
A.2.3 安装的必要条件
A.2.4 安装数据库引擎、文档和工具
A.3 下载源代码和安装示例数据库
A.3.1 在(企业)内部部署的SQL Server实例中创建并填充示例数据库
A.3.2 在SQL Database中创建并填充示例数据库
A.4 使用SQL Server Management Studio
A.5 使用SQL Server联机丛书
猜您喜欢