图书介绍

锋利的SQLPDF|Epub|txt|kindle电子书版本网盘下载

锋利的SQL
  • 张洪举编著 著
  • 出版社: 北京:人民邮电出版社
  • ISBN:9787115235022
  • 出版时间:2010
  • 标注页数:381页
  • 文件大小:106MB
  • 文件页数:393页
  • 主题词:关系数据库-数据库管理系统,SQL Server

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

锋利的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 CODASYL2

1.1.2 IMS3

1.1.3 RDBMS和SQL3

1.1.4 ANSI和SQL方言4

1.2 Transact-SQL语言的类型5

1.2.1 DDL语句5

1.2.2 DML语句6

1.2.3 编程和流控制语句7

1.2.4 SQL语句的批处理9

1.3 Transact-SQL语法10

1.3.1 使用标识符进行对象引用10

1.3.2 设置对象的数据类型11

1.3.3 函数14

1.3.4 使用表达式求值15

1.3.5 使用运算符进行计算操作15

1.3.6 使用注释符添加SQL语句说明15

1.3.7 保留关键字16

1.4 常量和变量16

1.4.1 常量的类型16

1.4.2 变量的类型18

1.5 运算符21

1.5.1 使用算术运算符执行数学运算21

1.5.2 使用赋值运算符为变量赋值22

1.5.3 使用位运算符执行按位运算22

1.5.4 使用比较运算符进行大小比较23

1.5.5 使用逻辑运算符进行条件测试24

1.5.6 字符串串联运算符25

1.5.7 一元运算符25

1.6 常用函数25

1.6.1 聚合函数25

1.6.2 配置函数27

1.6.3 游标函数28

1.6.4 日期和时间函数29

1.6.5 数学函数30

1.6.6 数据类型转换函数32

1.6.7 字符串函数35

1.6.8 文本和图像函数38

1.7 查询工具38

1.7.1 使用Management Studio进行Windows方式查询39

1.7.2 使用sqlcmd进行MS-DOS方式查询39

1.8 SQL书写规范40

1.8.1 使用大小写规范提高词义识别能力40

1.8.2 使用空格提供更好的语言标记区分42

1.8.3 使用缩进提高语句的逻辑层次表达能力42

1.8.4 使用垂直空白道提高关键词与参数的区分能力43

1.8.5 使用分组进行语句的段落划分43

第2章 数据库管理44

2.1 创建数据库44

2.1.1 数据库文件和文件组45

2.1.2 CREATE DATABASE语句的语法格式46

2.1.3 创建数据库示例48

2.1.4 判断数据库是否已经存在50

2.2 修改数据库51

2.2.1 扩展数据库和文件51

2.2.2 向数据库中添加、删除和修改文件组52

2.2.3 收缩数据库和文件53

2.2.4 设置数据库选项55

2.2.5 重命名数据库58

2.3 删除数据库58

第3章 表管理59

3.1 表的物理存储方式59

3.1.1 最基本的数据存储单位:数据页59

3.1.2 最基本的管理空间单位:区60

3.2 创建表61

3.2.1 创建基本表61

3.2.2 使用允许和禁止空值设置进行值约束61

3.2.3 使用标识符和全球唯一标识符创建唯一值62

3.2.4 为列指定默认值63

3.3 修改表63

3.3.1 为表添加新列64

3.3.2 修改表中的列64

3.3.3 删除表中的列65

3.4 重命名和删除表66

3.5 临时表67

3.5.1 创建本地表和全局表67

3.5.2 使用表变量代替临时表68

第4章 索引管理69

4.1 索引的基础知识69

4.1.1 索引的类型69

4.1.2 索引的特征73

4.1.3 常规索引设计规则73

4.2 创建索引75

4.2.1 最大索引限制75

4.2.2 限制索引参与的数据类型75

4.2.3 创建聚集索引76

4.2.4 创建非聚集索引77

4.2.5 创建具有包含性列的索引78

4.2.6 为计算列创建索引79

4.3 修改索引81

4.3.1 禁用索引81

4.3.2 重新组织和重新生成索引82

4.3.3 设置索引选项84

4.3.4 重命名索引85

4.4 删除索引85

第5章 基本查询86

5.1 基本的SELECT语句86

5.1.1 SELECT语句的结构86

5.1.2 数据库对象的引用规则88

5.2 使用选择列表和表别名89

5.2.1 选择所有列89

5.2.2 选择特定列89

5.2.3 在选择列表中使用常量、函数和表达式90

5.2.4 使用表别名简化表引用93

5.3 使用WHERE子句筛选行94

5.3.1 使用比较搜索条件94

5.3.2 使用范围搜索条件95

5.3.3 使用列表搜索条件95

5.3.4 使用模式匹配搜索条件97

5.3.5 使用NULL比较搜索条件99

5.4 使用GROUP BY子句和聚合函数进行分组计算100

5.5 使用HAVING子句从分组后结果中筛选行101

5.6 使用ORDER BY子句进行排序102

5.6.1 指定排序列102

5.6.2 指定排序顺序103

5.6.3 指定排序规则104

5.7 使用TOP子句和SET ROWCOUNT限制结果集107

5.7.1 使用TOP子句返回前几行108

5.7.2 使用SET ROWCOUNT语句限制结果集大小109

5.8 使用DISTINCT消除重复行109

5.9 查询的逻辑处理110

5.9.1 逻辑处理过程简介111

5.9.2 步骤1:使用FROM确定输入表115

5.9.3 步骤2:使用WHERE筛选数据119

5.9.4 步骤3:进行数据分组120

5.9.5 步骤4:使用HAVING筛选数据122

5.9.6 步骤5:通过SELECT列表确定返回列122

5.9.7 步骤6:使用ORDERBY子句排序查询结果123

第6章 子查询125

6.1 在选择列表中使用子查询125

6.1.1 子查询示例125

6.1.2 子查询与联接的关系126

6.2 含有IN和EXISTS的子查询127

6.2.1 使用含有IN的子查询进行单列匹配127

6.2.2 使用含有EXISTS的子查询进行整行匹配129

6.2.3 含有NOT IN和NOT EXISTS的子查询130

6.3 使用含有比较运算符的子查询132

6.4 使用ANY、SOME或ALL关键字进行批量比较134

6.5 使用多层嵌套子查询136

6.6 子查询应遵循的规则136

第7章 联接和APPLY运算符138

7.1 联接的基本知识138

7.1.1 联接的语法格式138

7.1.2 联接所使用的逻辑处理阶段139

7.1.3 列名限定和选择列表的使用140

7.1.4 联接条件设定141

7.2 交叉联接141

7.2.1 交叉联接的语法格式142

7.2.2 使用交叉联接查询全部数据142

7.2.3 使用交叉联接优化查询性能145

7.2.4 为交叉联接添加WHERE子句146

7.3 内部联接147

7.3.1 内部联接的语法格式147

7.3.2 使用等值进行内部联接148

7.3.3 使用不等值进行内部联接150

7.4 外部联接152

7.4.1 外部联接的语法格式152

7.4.2 使用左外部联接保留左表全部行153

7.4.3 使用右外部联接保留右表全部行156

7.4.4 使用完全外部联接保留两侧表全部行157

7.5 自联接158

7.5.1 使用不同列实现自联接158

7.5.2 使用同一列实现自联接159

7.6 多表联接160

7.6.1 顺序联接160

7.6.2 嵌套联接161

7.6.3 指定联接的物理顺序163

7.6.4 多表联接示例165

7.7 联接算法167

7.7.1 嵌套循环联接167

7.7.2 合并联接168

7.7.3 哈希联接169

7.7.4 使用联接提示强制联接策略171

7.8 使用APPLY运算符173

第8章 操作结果集176

8.1 合并结果集176

8.1.1 使用UNION与UNION ALL进行结果集合并177

8.1.2 使用ORDER BY子句对合并结果集排序178

8.1.3 结果集的合并顺序178

8.2 查询结果集的差异行179

8.2.1 使用EXCEPT运算符179

8.2.2 查询全部差异行181

8.3 查询结果集的相同行182

8.3.1 使用INTERSECT运算符183

8.3.2 查询全部相同行183

8.4 UNION、EXCEPT和INTERSECT的执行顺序184

8.5 在其他语句中使用UNION、EXCEPT和INTERSECT186

8.5.1 使用INTO子句指定结果存储位置186

8.5.2 突破结果集操作的限制186

8.6 使用公用表表达式188

8.6.1 CTE的语法结构188

8.6.2 多CTE定义和CTE的多次引用190

8.6.3 CTE的间接嵌套192

8.6.4 使用递归CTE返回分层数据193

8.7 汇总数据200

8.7.1 使用CUBE汇总数据200

8.7.2 使用ROLLUP汇总数据201

8.7.3 区分空值和汇总值202

8.7.4 返回指定维度的汇总203

第9章 窗口计算和表旋转205

9.1 窗口和开窗函数205

9.2 基于窗口的排名计算206

9.2.1 使用ROW_NUMBER()实现分区编号206

9.2.2 使用RANK()和DENSE_RANK()函数实现分区排名208

9.2.3 使用NTILE()函数实现数据分组209

9.3 基于窗口的聚合计算210

9.3.1 分区聚合计算与联接的比较211

9.3.2 对不同类型分区的聚合计算212

9.4 表旋转213

9.4.1 使用PIVOT运算符将表的行转换为列213

9.4.2 使用UNPIVOT运算符将表的列转换为行217

第10章 数据修改219

10.1 插入数据219

10.1.1 使用INSERT和VALUES插入行219

10.1.2 使用INSERT和SELECT子查询插入行221

10.1.3 使用INSERT和EXEC插入行221

10.1.4 使用SELECTINTO插入行222

10.2 更新数据223

10.2.1 使用SET和WHERE子句更新数据223

10.2.2 使用FROM子句更新数据224

10.2.3 使用CTE和视图更新数据226

10.3 删除数据226

10.3.1 使用DELETE删除行227

10.3.2 使用TRUNCATE TABLE删除所有行228

10.4 使用TOP限制数据修改228

10.4.1 使用TOP限制插入数据229

10.4.2 使用TOP限制更新数据229

10.4.3 使用TOP限制删除数据230

10.5 使用OUTPUT输出受影响行的信息230

10.5.1 在INSERT中使用OUTPUT子句230

10.5.2 在DELETE中使用OUTPUT子句231

10.5.3 在UPDATE中使用OUTPUT子句233

开发篇235

第11章 视图235

11.1 创建视图235

11.1.1 创建简单视图235

11.1.2 创建索引视图236

11.1.3 创建分区视图237

11.2 修改视图237

11.3 更新视图中的数据239

11.4 删除和重命名视图242

第12章 游标243

12.1 创建游标的步骤243

12.2 快速只进游标和可滚动游标245

12.3 静态游标、动态游标和由键集驱动的游标248

12.4 使用可更新游标进行数据更新249

第13章 存储过程250

13.1 存储过程的类型250

13.1.1 用户定义的存储过程250

13.1.2 扩展存储过程251

13.1.3 系统存储过程251

13.2 SQL存储过程251

13.2.1 创建存储过程251

13.2.2 修改存储过程256

13.2.3 存储过程的重新编译256

13.2.4 存储过程的错误处理258

13.3 CLR存储过程266

13.3.1 创建一个具有输出参数的CLR存储过程266

13.3.2 创建返回行集和信息的CLR存储过程271

13.3.3 删除CLR存储过程和程序集273

13.3.4 CLR与SQL存储过程的择取建议274

13.4 嵌套存储过程275

第14章 触发器277

14.1 DML触发器277

14.1.1 AFTER触发器277

14.1.2 进行事务提交和回滚操作279

14.1.3 检测对指定列的UPDATE或INSERT操作281

14.1.4 指定First和Last触发器284

14.1.5 嵌套和递归触发器285

14.1.6 INSTEAD OF触发器288

14.2 使用DDL触发器292

14.2.1 激发DDL触发器的DDL事件和事件组292

14.2.2 创建DDL触发器295

14.3 CLR触发器298

14.3.1 SqlTriggerContext类298

14.3.2 创建CLRDML触发器的步骤301

14.3.3 创建CLRDDL触发器的步骤305

14.4 修改、删除和禁用触发器307

14.4.1 DML触发器307

14.4.2 DDL触发器308

14.4.3 CLR触发器309

第15章 用户自定义函数310

15.1 标量UDF310

15.2 表值UDF312

15.2.1 使用内联式表值UDF实现参数化视图功能312

15.2.2 使用多语句式表值UDF进行复杂计算313

15.3 CLRUDF315

15.3.1 标量UDF315

15.3.2 表值UDF318

15.3.3 聚合UDF320

15.4 修改和删除UDF324

性能调整篇326

第16章 事务处理326

16.1 自动事务处理326

16.2 显式事务处理327

16.3 隐式事务处理328

16.4 使用嵌套事务329

16.5 使用事务保存点332

第17章 并发访问控制334

17.1 并发影响和并发控制类型334

17.1.1 并发影响334

17.1.2 并发控制335

17.2 锁管理器的数据锁定335

17.2.1 锁的粒度和层次结构336

17.2.2 锁的模式337

17.2.3 锁的兼容性339

17.2.4 锁升级339

17.3 自定义锁定341

17.3.1 自定义锁的超时时间341

17.3.2 使用表级锁提示342

17.4 使用事务隔离级别343

17.5 使用行版本的事务隔离级别345

17.5.1 快照隔离和行版本控制的工作原理345

17.5.2 使用基于行版本控制的隔离级别346

17.6 处理死锁349

17.6.1 防止死锁的方法350

17.6.2 使用TRY...CATCH处理死锁350

第18章 查询的优化与执行353

18.1 查询的优化353

18.1.1 查询计划定义的内容353

18.1.2 生成查询计划355

18.2 执行计划的缓存与执行357

18.2.1 执行计划的副本和执行上下文357

18.2.2 执行计划的开销管理358

18.3 执行计划的重用359

18.3.1 通过简单参数化提高计划重用率359

18.3.2 通过强制参数化提高计划重用率359

18.3.3 使用显式参数化提高计划重用率361

18.4 执行计划的重新编译361

实战篇365

第19章 SQL查询演练365

19.1 同一时间范围内并发数统计365

19.1.1 使用子查询366

19.1.2 使用CTE367

19.2 时间段天数统计368

19.3 数字范围统计369

19.3.1 查找剩余空位区间和剩余空位编号370

19.3.2 查找已用货位区间372

19.4 地域范围内最大数统计373

19.5 从分组中取前几行数据374

19.5.1 使用联接获取前几行375

19.5.2 使用窗口排名函数获取前几行376

19.6 取出多列中的非空值377

19.6.1 姓名问题处理377

19.6.2 工资问题处理379

19.7 将数据由行转换为列380

热门推荐