图书介绍
锋利的SQL【2025|PDF下载-Epub版本|mobi电子书|kindle百度云盘下载】

- 张洪举,王晓文著 著
- 出版社: 北京:人民邮电出版社
- ISBN:9787115388711
- 出版时间:2015
- 标注页数:457页
- 文件大小:71MB
- 文件页数:472页
- 主题词:关系数据库系统
PDF下载
下载说明
锋利的SQLPDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
基础篇2
第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 含有NOTIN和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 查询全部相同行218
8.4 UNION、EXCEPT和INTERSECT的执行顺序219
8.5 在其他语句中使用UNION、EXCEPT和INTERSECT221
8.5.1 在结果集操作中使用INTO子句221
8.5.2 突破结果集操作的限制222
8.6 使用公用表表达式223
8.6.1 CTE的语法结构223
8.6.2 多个CTE定义和CTE的多次引用226
8.6.3 CTE的间接嵌套228
8.6.4 使用递归CTE228
8.7 汇总数据236
8.7.1 使用CUBE汇总数据236
8.7.2 使用ROLLUP汇总数据238
8.7.3 区分空值和汇总值238
8.7.4 返回指定维度的汇总239
第9章 窗口计算和表旋转242
9.1 窗口和开窗函数简介242
9.2 基于窗口的聚合计算245
9.2.1 窗口的分区245
9.2.2 窗口的排序与框架248
9.2.3 开窗聚合函数的嵌套253
9.2.4 分区聚合计算与联接的比较255
9.3 基于窗口的排名计算256
9.3.1 ROW NUMBER函数256
9.3.2 RANK和DENSE RANK函数258
9.3.3 NTILE函数259
9.4 基于窗口的分布计算261
9.4.1 PERCENT_RANK函数261
9.4.2 CUME_DIST函数262
9.4.3 PERCENTILE_CONT和PERCENTILE_DISC函数263
9.5 基于窗口偏移计算264
9.5.1 LAG和LEAD函数264
9.5.2 FIRST_VALUE和LAST_VALUE函数265
9.6 表旋转267
9.6.1 PIVOT运算符267
9.6.2 UNPIVOT运算符271
第10章 数据修改273
10.1 插入数据273
10.1.1 使用INSERT和VALUES插入行273
10.1.2 使用INSERT和SELECT子查询插入行275
10.1.3 使用INSERT和EXEC插入行275
10.1.4 使用SELECT INTO插入行276
10.1.5 使用BULK INSERT从文件插入行277
10.2 更新数据278
10.2.1 使用SET和WHERE子句更新数据278
10.2.2 使用FROM子句更新数据279
10.2.3 使用CTE和视图更新数据280
10.3 删除数据281
10.3.1 使用DELETE删除行281
10.3.2 使用TRUNCATE TABLE删除所有行282
10.4 合并数据283
10.5 使用TOP和OFFSET-FETCH限制修改286
10.5.1 限制插入数据286
10.5.2 限制更新数据287
10.5.3 限制删除数据288
10.6 使用OUTPUT输出受影响行的信息288
10.6.1 INSERT与OUTPUT289
10.6.2 DELETE与OUTPUT290
10.6.3 UPDATE与OUTPUT291
10.6.4 MERGE与OUTPUT292
开发篇295
第11章 视图295
11.1 创建视图295
11.1.1 创建简单视图295
11.1.2 创建索引视图296
11.1.3 创建分区视图297
11.2 修改视图297
11.3 更新视图中的数据299
11.4 删除和重命名视图302
第12章 游标303
12.1 创建游标的步骤303
12.2 快速只进游标和可滚动游标306
12.3 静态游标、动态游标和由键集驱动的游标308
12.4 使用可更新游标进行数据更新309
第13章 存储过程311
13.1 存储过程的类型311
13.1.1 用户定义的存储过程311
13.1.2 扩展存储过程312
13.1.3 系统存储过程312
13.2 SQL存储过程312
13.2.1 创建存储过程312
13.2.2 修改存储过程317
13.2.3 存储过程的重新编译318
13.2.4 存储过程的错误处理319
13.3 CLR存储过程327
13.3.1 创建一个具有输出参数的CLR存储过程327
13.3.2 创建返回行集和信息的CLR存储过程333
13.3.3 删除CLR存储过程和程序集335
13.3.4 CLR与SQL存储过程的择取建议336
13.4 嵌套存储过程337
第14章 触发器339
14.1 DML触发器339
14.1.1 AFTER触发器339
14.1.2 进行事务提交和回滚操作341
14.1.3 检测对指定列的UPDATE或INSERT操作343
14.1.4 指定First和Last触发器346
14.1.5 嵌套和递归触发器347
14.1.6 INSTEAD OF触发器350
14.2 使用DDL触发器354
14.2.1 激发DDL触发器的DDL事件和事件组354
14.2.2 创建DDL触发器357
14.3 CLR触发器360
14.3.1 SqlTriggerContext类360
14.3.2 创建CLR DML触发器的步骤363
14.3.3 创建CLR DDL触发器的步骤369
14.4 修改、删除和禁用触发器371
14.4.1 DML触发器371
14.4.2 DDL触发器372
14.4.3 CLR触发器372
第15章 用户自定义函数374
15.1 标量UDF375
15.2 表值UDF376
15.2.1 使用内联式表值UDF实现参数化视图功能376
15.2.2 使用多语句式表值UDF进行复杂计算377
15.3 CLR UDF379
15.3.1 标量UDF379
15.3.2 表值UDF382
15.3.3 聚合UDF384
15.4 修改和删除UDF388
性能调整篇391
第16章 事务处理391
16.1 自动事务处理391
16.2 显式事务处理392
16.3 隐式事务处理393
16.4 使用嵌套事务394
16.5 使用事务保存点397
第17章 并发访问控制399
17.1 并发影响和并发控制类型399
17.1.1 并发影响399
17.1.2 并发控制400
17.2 锁管理器的数据锁定400
17.2.1 锁的粒度和层次结构401
17.2.2 锁的模式402
17.2.3 锁的兼容性404
17.2.4 锁升级404
17.3 自定义锁定406
17.3.1 自定义锁的超时时间406
17.3.2 使用表级锁提示407
17.4 使用事务隔离级别408
17.5 使用行版本的事务隔离级别410
17.5.1 快照隔离和行版本控制的工作原理410
17.5.2 使用基于行版本控制的隔离级别411
17.6 处理死锁414
17.6.1 防止死锁的方法415
17.6.2 使用TRY...CATCH处理死锁415
第18章 查询的优化与执行418
18.1 查询的优化418
18.1.1 查询计划定义的内容418
18.1.2 生成查询计划420
18.2 执行计划的缓存与执行422
18.2.1 执行计划的副本和执行上下文422
18.2.2 执行计划的开销管理423
18.3 执行计划的重用423
18.3.1 通过简单参数化提高计划重用率424
18.3.2 通过强制参数化提高计划重用率424
18.3.3 使用显式参数化提高计划重用率426
18.4 执行计划的重新编译426
实战篇430
第19章 SQL查询演练430
19.1 同一时间范围内并发数统计430
19.1.1 使用子查询431
19.1.2 使用CTE432
19.1.3 使用窗口函数433
19.2 时间段天数统计435
19.3 数字范围统计436
19.3.1 查找剩余空位区间和剩余空位编号437
19.3.2 查找已用货位区间439
19.4 地域范围内最大数统计440
19.5 从分组中取前几行数据441
19.5.1 使用联接获取前几行442
19.5.2 使用窗口排名函数获取前几行443
19.6 取出多列中的非空值444
19.6.1 姓名问题处理445
19.6.2 工资问题处理446
19.7 将数据由行转换为列447
19.8 层次结构操作448
19.8.1 检索祖先节点450
19.8.2 检索子树节点451
19.8.3 插入新节点451
19.8.4 变更节点位置453
19.8.5 hierarchyid的索引策略455
热门推荐
- 1552830.html
- 3097004.html
- 397244.html
- 1220281.html
- 2001629.html
- 1883415.html
- 1650586.html
- 2260292.html
- 672372.html
- 2040332.html
- http://www.ickdjs.cc/book_366720.html
- http://www.ickdjs.cc/book_1324963.html
- http://www.ickdjs.cc/book_721385.html
- http://www.ickdjs.cc/book_511390.html
- http://www.ickdjs.cc/book_1583179.html
- http://www.ickdjs.cc/book_3203175.html
- http://www.ickdjs.cc/book_2699255.html
- http://www.ickdjs.cc/book_3816933.html
- http://www.ickdjs.cc/book_2508348.html
- http://www.ickdjs.cc/book_3702258.html