图书目录

目    录 

第1章  初识SQL Server 2016   1

1.1  SQL Server 2016应用领域   1

1.2  SQL Server 2016的重要新增功能   2

1.2.1  生产DBA   2

1.2.2  开发DBA   3

1.2.3  商业智能DBA   4

1.3  SQL Server体系结构   5

1.3.1  数据库文件和事务日志   5

1.3.2  SQL Server Native Client   5

1.3.3  系统数据库   6

1.3.4  架构   8

1.3.5  同义词   9

1.3.6  动态管理对象   9

1.3.7  数据类型   10

1.4  SQL Server版本   15

1.4.1  版本概览   15

1.4.2  许可   16

1.5  小结   18

1.6  经典习题   18

第2章  SQL Server 2016基础   19

2.1  安装规划   20

2.1.1  硬件选择   20

2.1.2  软件和安装选择   24

2.2  安装SQL Server   26

2.2.1  全新安装   26

2.2.2  并列安装   26

2.2.3  升级安装   26

2.2.4  手动安装   27

2.2.5  自动安装   29

2.3  系统压力测试   34

2.4  安装后的配置   35

2.4.1  配置SQL Server设置以实现高性能   35

2.4.2  tempdb   36

2.4.3  SQL Server的安全设置   37

2.4.4  SQL Server配置管理器   38

2.4.5  备份   39

2.5  卸载SQL Server   39

2.5.1  卸载Reporting Services   39

2.5.2  卸载Analysis Services   39

2.5.3  卸载SQL Server数据库引擎   39

2.6  安装失败故障排除   40

2.7  小结   40

2.8  经典习题   40

第3章  数据库和表   41

3.1  数据库的组成   41

3.1.1  SQL Sever 2016 常用的逻辑对象   42

3.1.2  数据库文件和文件组   43

3.2  系统数据库   45

3.2.1  SQL Server包含的系统数据库   45

3.2.2  在对象资源管理器中隐藏系统对象   47

3.3  创建数据库   47

3.3.1  使用SQL Server Management Studio图形界面创建数据库   47

3.3.2  使用Transact-SQL语句创建数据库   51

3.4  管理数据库   52

3.4.1  修改数据库   52

3.4.2  查看数据库信息   55

3.4.3  重命名数据库   56

3.4.4  删除数据库   56

3.4.5  分离数据库和附加数据库   57

3.5  数据类型   59

3.5.1  系统数据类型   59

3.5.2  用户自定义的数据类型   63

3.6  创建数据表   64

3.6.1  使用SQL Server Management Studio创建表   64

3.6.2  使用Transact-SQL语句创建表   65

3.7  管理数据表   66

3.7.1  使用Transact-SQL语句添加、删除和修改字段   66

3.7.2  查看数据表   67

3.7.3  删除数据表   69

3.8  经典习题   70

第4章  Transact-SQL语言基础   71

4.1  Transact-SQL概述   71

4.1.1  Transact-SQL语法约定   71

4.1.2  多部分名称   72

4.1.3  如何命名标识符   73

4.1.4  系统保留字   74

4.2  常量   75

4.2.1  字符串型常量   76

4.2.2  数值型常量   76

4.2.3  日期和时间型常量   76

4.3  变量   76

4.3.1  全局变量   76

4.3.2  局部变量   77

4.4  运算符和表达式   77

4.4.1  运算符   77

4.4.2  表达式   79

4.5  Transact-SQL利器——通配符   81

4.6  Transact-SQL语言中的注释   81

4.7  数据定义语言   82

4.8  数据操纵语言   82

4.9  数据控制语言   82

4.10  其他基本语句   83

4.10.1  数据声明   83

4.10.2  数据赋值   83

4.10.3  数据输出   83

4.11  流程控制语句   84

4.11.1  BEGIN…END语句   84

4.11.2  IF…ELSE条件语句   84

4.11.3  CASE语句   85

4.11.4  WHILE…CONTINUE…BREAK语句   86

4.11.5  GOTO语句   87

4.11.6  WAITFOR语句   87

4.11.7  RETURN语句   88

4.12  批处理语句   88

4.12.1  批处理的基本概念   88

4.12.2  每个批处理单独发送到服务器   89

4.12.3  何时使用批处理   89

4.12.4  使用批处理建立优先级   90

4.12.5  批处理的执行   91

4.12.6  批处理中的错误   93

4.12.7  GO不是Transact-SQL命令   94

4.13  SQL Server 2016函数简介   94

4.13.1  字符串函数   94

4.13.2  数学函数   96

4.13.3  数据类型转换函数   97

4.13.4  日期和时间函数   98

4.13.5  系统函数   99

4.14  为学生选课表增加10万行测试数据   99

4.15  经典习题   102

第5章  数据查询   103

5.1  工作场景导入   103

5.2  查询工具的使用   104

5.3  关系代数   105

5.3.1  选择   105

5.3.2  投影   105

5.3.3  连接   106

5.4  简单查询   107

5.4.1  SELECT语句对列的查询   108

5.4.2  SELECT语句对行的选择   111

5.4.3  对查询结果进行排序   116

5.4.4  对查询结果进行统计   117

5.4.5  将查询结果生成新表   119

5.5  连接查询   120

5.5.1  交叉连接   120

5.5.2  内连接   121

5.5.3  外连接   123

5.6  嵌套查询   124

5.6.1  带有IN谓词的子查询   125

5.6.2  带有比较运算符的子查询   126

5.6.3  带有ANY、SOME或ALL关键字的子查询   127

5.6.4  带有EXISTS谓词的子查询   127

5.7  联合查询   130

5.7.1  UNION操作符   130

5.7.2  INTERSECT操作符   130

5.7.3  EXCEPT操作符   131

5.8  使用排序函数   132

5.8.1  ROW_NUMBER()   132

5.8.2  RANK()   133

5.8.3  DENSE_RANK()   134

5.8.4  NTILE()   134

5.9  动态查询   135

5.10  经典习题   137

第6章  数据更新   138

6.1  工作场景导入   138

6.2  插入数据   138

6.2.1  插入单行数据   139

6.2.2  插入多行数据   140

6.3  修改数据   142

6.3.1  修改单行数据   142

6.3.2  修改多行数据   143

6.4  删除数据   144

6.4.1  使用DELETE语句删除数据   144

6.4.2  使用TRUNCATE TABLE语句清空表   145

6.5  经典习题   145

第7章  数据完整性   146

7.1  工作场景导入   146

7.2  如何实现数据完整性   146

7.3  规则对象的基本操作   148

7.3.1  创建规则对象   148

7.3.2  绑定规则对象   149

7.3.3  验证规则对象   149

7.3.4  解除规则对象绑定   149

7.3.5  删除规则对象   150

7.4  默认值对象的基本操作   150

7.4.1  创建默认值对象   150

7.4.2  绑定默认值对象   150

7.4.3  解除默认值对象绑定   150

7.4.4  删除默认值对象   151

7.5  完整性约束   151

7.5.1  PRIMARY KEY约束   151

7.5.2  FOREIGN KEY约束   154

7.5.3  UNIQUE约束   156

7.5.4  CHECK约束   156

7.5.5  DEFAULT约束   157

7.5.6  NOT NULL约束   157

7.6  经典习题   158

第8章  数据库索引   159

8.1  SQL Server 2016中新增的索引   159

8.2  索引和分区表   162

8.2.1  理解索引   162

8.2.2  创建索引   166

8.2.3  使用分区表和索引   168

8.3  索引维护   168

8.3.1  监控索引碎片   169

8.3.2  清理索引   170

8.4  使用索引改进查询性能   171

8.5  数据库引擎优化顾问   175

8.6  太多的索引会导致成本更高   176

8.7  小结   177

8.8  经典习题   178

第9章  事务、锁和游标   179

9.1  工作场景导入   179

9.2  事务管理   180

9.2.1  事务的原理   180

9.2.2  事务的概念   180

9.2.3  事务的特性   180

9.2.4  事务的工作原理   181

9.2.5  事务的执行模式   181

9.2.6  事务的应用案例   182

9.2.7  使用事务时的考虑因素   187

9.3  锁   188

9.3.1  事务的缺陷   188

9.3.2  锁的概念   189

9.3.3  隔离性的级别   189

9.3.4  锁的空间管理及粒度   191

9.3.5  锁的类别   191

9.3.6  如何在SQL Server中查看数据库中的锁   192

9.3.7  死锁及其防止   193

9.4  游标   194

9.4.1  游标概述   194

9.4.2  声明游标   195

9.4.3  打开游标   196

9.4.4  读取游标   197

9.4.5  关闭游标   199

9.4.6  删除游标   199

9.5  经典习题   199

第10章  存储过程和触发器   200

10.1  存储过程   200

10.1.1  存储过程的基本概念   200

10.1.2  存储过程的类型   201

10.1.3  用户存储过程的创建与执行   202

10.1.4  存储过程的查看、修改和删除   206

10.2  触发器   209

10.2.1  触发器概述   209

10.2.2  DML触发器的创建和应用   210

10.2.3  DDL触发器的创建和应用   212

10.2.4  查看、修改和删除触发器   213

10.3  经典习题   215

第11章  视图   216

11.1  视图概述   216

11.1.1  视图的概念   216

11.1.2  视图的分类   217

11.1.3  视图的优点和作用   217

11.2  创建视图   218

11.2.1  使用视图设计器创建视图   218

11.2.2  使用Transact-SQL命令创建视图   219

11.3  修改视图   221

11.4  查看视图   221

11.4.1  使用SSMS图形化工具查看视图的定义信息   221

11.4.2  使用系统存储过程查看视图的定义信息   223

11.5  更新视图   225

11.5.1  通过视图向基本表中插入数据   226

11.5.2  通过视图修改基本表中的数据   226

11.5.3  通过视图删除基本表中的数据   227

11.6  删除视图   228

11.6.1  使用对象资源管理器删除视图   228

11.6.2  使用Transact-SQL命令删除视图   228

11.7  经典习题   228

第12章  数据库安全机制   230

12.1  SQL Server 2016安全性概述   230

12.1.1  SQL Server网络安全基础   231

12.1.2  SQL Server 2016的安全性体系结构   233

12.1.3  SQL Server 2016安全机制的总体策略   240

12.2  管理用户   241

12.2.1  管理对SQL Server实例的访问   241

12.2.2  管理对SQL Server数据库的访问   250

12.3  角色管理   252

12.3.1  服务器级角色   252

12.3.2  数据库级角色   256

12.3.3  自定义数据库角色   259

12.3.4  应用程序角色   260

12.4  管理架构   262

12.4.1  认识架构   263

12.4.2  使用默认架构   264

12.5  权限管理   264

12.5.1  授予权限   265

12.5.2  撤销权限   265

12.5.3  拒绝权限   266

12.6  经典习题   266

第13章  数据库的备份与恢复   267

13.1  备份与恢复   267

13.1.1  备份类型   268

13.1.2  恢复模式   268

13.1.3  设置恢复模式   269

13.2  备份设备   269

13.2.1  创建备份设备   270

13.2.2  删除备份设备   271

13.3  备份数据库   271

13.3.1  完整备份   271

13.3.2  差异备份   273

13.3.3  事务日志备份   274

13.4  在SQL Server Management Studio中还原数据库   274

13.5  用Transact-SQL语句还原数据库   275

13.5.1  完整备份还原   275

13.5.2  差异备份还原   276

13.5.3  事务日志还原   276

13.6  建立自动备份的维护计划   277

13.7  经典习题   283

第14章  自动化SQL Server   284

14.1  维护计划   284

14.1.1  维护计划向导   285

14.1.2  维护计划设计器   288

14.2  使用SQL Server代理自动化SQL Server   290

14.2.1  作业   291

14.2.2  计划   295

14.2.3  操作员   295

14.2.4  警报   298

14.3  SQL Server代理安全性   302

14.3.1  服务账户   302

14.3.2  访问SQL Server代理   302

14.3.3  SQL Server代理的代理   303

14.4  小结   305

14.5  经典习题   306

第15章  监控SQL Server   307

15.1  选择合适的监控工具   307

15.2  性能监视器   309

15.2.1  CPU资源计数器   310

15.2.2  磁盘活动   311

15.2.3  内存使用率   315

15.2.4  性能监控工具   318

15.3  监控事件   319

15.3.1  默认跟踪   321

15.3.2  system_health会话   322

15.3.3  SQL跟踪   322

15.4  监控日志   325

15.4.1  监控SQL Server错误日志   326

15.4.2  监控Windows事件日志   326

15.5  经典习题   326

参考文献   327