新書推薦:
《
知宋·宋代之科举
》
售價:NT$
454.0
《
那本书是(吉竹伸介与又吉直树 天才联动!)
》
售價:NT$
454.0
《
传播的跃迁:人工智能如何革新人类的交流
》
售價:NT$
505.0
《
纯粹·古代中国的历史与制度
》
售價:NT$
286.0
《
生活来来往往 别等来日方长 新版(伍佰:“讲好了这一辈子,再度重相逢。”别等,别遗憾!珍惜当下才是最好的解药)
》
售價:NT$
265.0
《
一个英国军事顾问眼中的二战
》
售價:NT$
1265.0
《
就业、利息和货币通论(徐毓枬译本)(经济学名著译丛)
》
售價:NT$
306.0
《
瘦肝
》
售價:NT$
454.0
編輯推薦:
- 基于SQL Server 2014,由浅入深地详细介绍最新SQL技术,让读者始终站在技术最前沿
- 深入分析SQL的运行机制和效率提升方法,使读者知其然,更知其所以然
- 丰富的图表和可操作性极强的实例,便于读者理解,并能够举一反三
SQL是目前所有关系型数据库的语言基础,也是所有数据库开发人员、数据库管理员都必须掌握的一门语言工具。 本书内容基于SQL Server 2014。书中既覆盖改善效率和性能的普通SQL技术,也深入探讨了SQL新技术,更包含一些实用的查询解决方案。
內容簡介:
本书从基础、开发、性能调整和实战4方面介绍了SQL技术及其应用,包括数据库与架构、表管理、索引管理、基本查询、子查询、联接和APPLY运算符、操作结果集、窗口计算和表旋转、数据修改、视图、游标、存储过程、触发器、用户自定义函数、事务处理、并发访问控制、查询的优化与执行等内容。
本书既覆盖了改善效率和性能的普通SQL技术,也深入探讨了SQL新技术,更包含一些实用的查询解决方案,希望本书能够成为引领读者进入SQL查询殿堂的捷径。此外,本书在介绍各种查询语法时,更注重对查询逻辑思维方式的引导和介绍,帮助读者举一反三,提升动手解决实际问题的能力。
關於作者:
张洪举 微软公司最有价值专家(MVP),微软TechNet技术资源专栏作家。拥有近20年的数据库产品应用开发经历,尤其是在多层架构的面向对象系统分析设计、数据库分析设计、商业智能系统分析设计等方面积累了丰富的项目经验。著有《SQL Server 2005:入门、进阶与应用实例》等原创著作,并翻译了《SQL Server 2012 T-SQL基础教程循序渐进》等作品。
王晓文 曲阜师范大学数学科学学院学生,虽学的是数学与应用数学专业,但个人喜欢研究数据库基础理论,在本书写作过程中主要负责SQL理论基础、数据库物理存储等相关内容的编写。
目錄 :
目录
基 础 篇
第1章 SQL简介2
1.1 SQL的历史起源2
1.1.1 CODASYL3
1.1.2 IMS3
1.1.3 RDBMS和SQL3
1.1.4 ANSI和SQL方言5
1.2 SQL的理论基础5
1.2.1 集合理论5
1.2.2 谓词逻辑6
1.2.3 关系模型7
1.3 Transact-SQL语言的类型10
1.3.1 DDL语句11
1.3.2 DML语句12
1.3.3 编程和流控制语句12
1.3.4 SQL语句的批处理15
1.4 Transact-SQL语法16
1.4.1 标识符16
1.4.2 数据类型17
1.4.3 函数20
1.4.4 表达式20
1.4.5 运算符21
1.4.6 注释21
1.4.7 保留关键字22
1.5 常量和变量22
1.5.1 常量22
1.5.2 变量24
1.6 运算符26
1.6.1 算术运算符26
1.6.2 赋值运算符28
1.6.3 位运算符28
1.6.4 比较运算符29
1.6.5 逻辑运算符30
1.6.6 字符串串联运算符31
1.6.7 一元运算符31
1.7 常用函数31
1.7.1 聚合函数31
1.7.2 配置函数33
1.7.3 游标函数34
1.7.4 日期和时间函数35
1.7.5 数学函数37
1.7.6 数据类型转换函数39
1.7.7 字符串函数43
1.7.8 文本和图像函数45
1.7.9 逻辑函数46
1.8 查询工具46
1.8.1 Management Studio46
1.8.2 sqlcmd47
1.9 SQL书写规范48
1.9.1 大小写规范49
1.9.2 使用空格50
1.9.3 使用缩进51
1.9.4 使用垂直空白道51
1.9.5 使用分组52
第2章 数据库与架构53
2.1 SQL Server数据库基础53
2.1.1 数据库的服务方式53
2.1.2 数据库实例54
2.1.3 架构与对象55
2.1.4 数据库文件和文件组56
2.2 创建数据库58
2.2.1 CREATE DATABASE语句的语法格式58
2.2.2 创建数据库示例60
2.2.3 判断数据库是否已经存在63
2.3 修改数据库63
2.3.1 扩展数据库和文件63
2.3.2 向数据库中添加、删除和修改文件组64
2.3.3 收缩数据库和文件65
2.3.4 设置数据库选项68
2.3.5 重命名数据库71
2.4 删除数据库71
2.5 架构管理72
2.5.1 创建架构72
2.5.2 修改架构74
2.5.3 移动对象到一个新架构中75
2.5.4 删除架构76
第3章 表管理77
3.1 表的物理存储方式77
3.1.1 数据页77
3.1.2 区78
3.2 创建表79
3.2.1 创建基本表79
3.2.2 使用NULL约束79
3.2.3 使用默认约束和标识列80
3.2.4 其他数据完整性设置86
3.3 修改表88
3.3.1 为表添加新列89
3.3.2 修改表中的列89
3.3.3 删除表中的列91
3.4 重命名和删除表91
3.5 临时表92
3.5.1 本地表和全局表92
3.5.2 表变量93
3.6 内存优化表93
第4章 索引管理95
4.1 索引的基础知识95
4.1.1 索引的类型95
4.1.2 索引的特征99
4.1.3 常规索引设计规则99
4.2 创建索引101
4.2.1 最大索引限制101
4.2.2 限制索引参与的数据类型101
4.2.3 创建聚集索引102
4.2.4 创建非聚集索引103
4.2.5 创建具有包含性列的索引104
4.2.6 为计算列创建索引105
4.3 修改索引107
4.3.1 禁用索引107
4.3.2 重新组织和重新生成索引108
4.3.3 设置索引选项110
4.3.4 重命名索引111
4.4 删除索引111
第5章 基本查询112
5.1 基本的SELECT语句112
5.1.1 SELECT语句的结构112
5.1.2 数据库对象的引用规则114
5.2 使用选择列表和表别名115
5.2.1 选择所有列115
5.2.2 选择特定列115
5.2.3 使用常量、函数和表达式116
5.2.4 用表别名121
5.3 使用WHERE子句筛选行121
5.3.1 用比较搜索条件121
5.3.2 使用范围搜索条件123
5.3.3 使用列表搜索条件123
5.3.4 使用模式匹配搜索条件125
5.3.5 使用NULL比较搜索条件127
5.4 使用GROUP BY子句进行分组计算129
5.5 使用HAVING子句从中间结果筛选行131
5.6 使用ORDER BY子句进行排序132
5.6.1 指定排序列132
5.6.2 指定排序顺序133
5.6.3 指定排序规则134
5.7 使用TOP和OFFSET-FETCH限制结果集137
5.7.1 使用TOP选项137
5.7.2 使用OFFSET-FETCH筛选139
5.7.3 使用SET ROWCOUNT语句140
5.8 使用DISTINCT消除重复行140
5.9 同时操作142
5.10 查询的逻辑处理143
5.10.1 逻辑处理过程简介143
5.10.2 步骤1:FROM147
5.10.3 步骤2:使用WHERE筛选器151
5.10.4 步骤3:数据分组153
5.10.5 步骤4:使用HAVING筛选器154
5.10.6 步骤5:处理SELECT列表154
5.10.7 步骤6:使用ORDER BY子句155
5.10.8 步骤7:使用TOP或OFFSET
FETCH156
第6章 子查询157
6.1 在选择列表中使用子查询157
6.1.1 子查询示例157
6.1.2 子查询与联接的关系159
6.2 含有IN和EXISTS的子查询159
6.2.1 含有IN的子查询159
6.2.2 含有EXISTS的子查询161
6.2.3 含有NOT IN和NOT EXISTS的子查询162
6.3 含有比较运算符的子查询164
6.4 使用ANY、SOME或ALL关键字165
6.5 使用多层嵌套子查询168
6.6 子查询应遵循的规则168
第7章 联接和APPLY运算符172
7.1 联接的基本知识172
7.1.1 联接的语法格式172
7.1.2 联接所使用的逻辑处理阶段173
7.1.3 列名限定和选择列表的使用174
7.1.4 联接条件设定175
7.2 交叉联接175
7.2.1 交叉联接的语法格式176
7.2.2 使用交叉联接查询全部数据176
7.2.3 使用交叉联接优化查询性能179
7.2.4 为交叉联接添加WHERE子句180
7.3 内部联接181
7.3.1 内部联接的语法格式181
7.3.2 等值内部联接182
7.3.3 不等值联接184
7.4 外部联接186
7.4.1 外部联接的语法格式186
7.4.2 左外部联接187
7.4.3 右外部联接190
7.4.4 完全外部联接191
7.5 自联接192
7.5.1 使用不同列实现自联接192
7.5.2 使用同一列实现自联接193
7.6 多表联接194
7.6.1 顺序联接194
7.6.2 嵌套联接196
7.6.3 指定联接的物理顺序198
7.6.4 多表联接示例199
7.7 联接算法202
7.7.1 嵌套循环联接202
7.7.2 合并联接203
7.7.3 哈希联接204
7.7.4 使用联接提示强制联接策略206
7.8 使用APPLY运算符208
第8章 操作结果集211
8.1 合并结果集211
8.1.1 UNION与UNION ALL212
8.1.2 使用ORDER BY子句213
8.1.3 结果集的合并顺序214
8.2 查询结果集的差异行214
8.2.1 使用EXCEPT运算符214
8.2.2 查询全部差异行216
8.3 查询结果集的相同行218
8.3.1 使用INTERSECT运算符218
8.3.2查