书籍详情
SQL Server 2017从零开始学
作者:李小威
出版社:清华大学出版社
出版时间:2019-09-01
ISBN:9787302537267
定价:¥89.00
购买这本书可以去
内容简介
本书面向SQL Server 2017初学者,以及广大数据库设计爱好者。全书内容比较实用,涉及面广,通俗易懂地介绍SQL Server 2017数据库应用与开发的相关基础知识,提供大量具体操作SQL Server 2017数据库的示例,供读者实践。每节都清晰地阐述代码如何工作及其作用,使读者能在较短的时间内有效地掌握SQL Server 2017数据库的应用。 本书共20章,内容包括SQL Server 2017的安装与配置、Transact-SQL语言基础、Transact-SQL语句的查询与应用、数据库的操作、数据表的操作、约束数据表中的数据、管理数据表中的数据、查询数据表中的数据、数据表中的高级查询、认识系统函数和自定义函数、视图的创建与应用、事务和锁的应用、索引的创建与应用、游标的创建与应用、存储过程的创建与应用、触发器的创建与应用、SQL Server 2017的安全机制、数据库的备份与恢复、数据库系统的自动化管理等,并在每章的*后提供典型习题,供读者操作练习,加深理解。 本书几乎涉及SQL Server 2017数据库应用与开发的所有重要知识,适合所有的SQL Server 2017数据库初学者快速入门,同时也适合想全面了解SQL Server 2017的数据库开发人员阅读。通过全书的学习,读者可以完整地掌握SQL Server 2017的技术要点并具备系统开发的基本技术。
作者简介
李小威,软件开发项目经理,在软件开发有多年的开发经验,尤其擅长Java、PHP、MySQL数据库、大数据分析等,具有很强的实战经验。对多种数据库系统有深入研究,在数据库管理与开发方面有着丰富的经验。并已出版过多本相关畅销书,颇受广大读者认可。
目录
u 目 录
第1章 初识SQL Server 2017· 1
1.1 认识SQL Server 2017· 1
1.1.1 SQL Server 2017新特点.. 1
1.1.2 SQL Server 2017的版本.. 2
1.2 SQL Server 2017的组件··· 3
1.2.1 SQL Server 2017的数据库引擎.. 3
1.2.2 分析服务.. 4
1.2.3 集成服务.. 4
1.2.4 报表服务.. 4
1.3 SQL Server 2017的新增功能··· 4
1.3.1 数据库引擎中的新增功能.. 4
1.3.2 集成服务中的新增功能.. 5
1.3.3 分析服务中的新增功能.. 6
1.3.4 报表服务中的新增功能.. 6
1.3.5 机器学习中的新增功能.. 7
1.3.6 主数据服务中的新增功能.. 7
1.4 疑难解答··· 8
1.5 经典习题··· 8
第2章 SQL Server 2017的安装和配置·· 9
2.1 安装SQL Server 2017· 9
2.1.1 SQL Server 2017安装环境需求.. 9
2.1.2 安装SQL Server 2017. 10
2.1.3 SQL Server 2017常见实用程序.. 18
2.2 安装SQL Server Management Studio· 20
2.3 SQL Server Management Studio基本操作·································································· 21
2.3.1 SSMS的启动与连接.. 22
2.3.2 使用模板资源管理器.. 23
2.3.3 解决方案和项目脚本.. 24
2.3.4 配置服务器的属性.. 25
2.3.5 查询编辑器的应用.. 32
2.4 疑难解惑··· 36
2.5 经典习题··· 36
第3章 Transact-SQL语言基础·· 37
3.1 Transact-SQL概述··· 37
3.1.1 什么是Transact-SQL. 38
3.1.2 T-SQL语法的约定.. 38
3.1.3 标识符的命名规则.. 40
3.2 常量··· 41
3.2.1 数字常量.. 41
3.2.2 字符串常量.. 42
3.2.3 日期和时间常量.. 42
3.2.4 符号常量.. 42
3.3 变量··· 43
3.3.1 全局变量.. 43
3.3.2 局部变量.. 46
3.3.3 批处理和脚本.. 47
3.4 运算符和表达式··· 49
3.4.1 算术运算符.. 49
3.4.2 比较运算符.. 49
3.4.3 逻辑运算符.. 50
3.4.4 连接运算符.. 50
3.4.5 按位运算符.. 50
3.4.6 运算符的优先级.. 51
3.4.7 什么是表达式.. 51
3.4.8 表达式的分类.. 51
3.5 Transact-SQL语言中的通配符··· 52
3.6 Transact-SQL语言中的注释··· 53
3.7 疑难解惑··· 54
3.8 经典习题··· 54
第4章 Transact-SQL语句的应用·· 55
4.1 数据定义语句··· 55
4.1.1 创建对象CREATE语句.. 55
4.1.2 删除对象DROP语句.. 59
4.1.3 修改对象ALTER语句.. 59
4.2 数据操作语句··· 61
4.2.1 数据插入INSERT语句.. 62
4.2.2 数据修改UPDATE语句.. 63
4.2.3 数据删除DELETE语句.. 64
4.2.4 数据查询SELECT语句.. 65
4.3 数据控制语句··· 67
4.3.1 授予权限GRANT语句.. 67
4.3.2 收回权限REVOKE语句.. 68
4.3.3 禁止权限DENY语句.. 68
4.4 其他基本语句··· 69
4.4.1 数据声明DECLARE语句.. 69
4.4.2 数据赋值SET语句.. 70
4.4.3 数据输出PRINT语句.. 71
4.5 流程控制语句··· 71
4.5.1 BEGIN…END语句.. 71
4.5.2 IF…ELSE语句.. 72
4.5.3 CASE语句.. 73
4.5.4 WHILE语句.. 75
4.5.5 GOTO语句.. 76
4.5.6 WAITFOR语句.. 77
4.5.7 RETURN语句.. 78
4.6 批处理语句··· 78
4.7 疑难解惑··· 80
4.8 经典习题··· 80
第5章 数据库的创建与管理·· 81
5.1 数据库组成··· 81
5.1.1 数据文件.. 82
5.1.2 日志文件.. 82
5.2 系统数据库··· 82
5.2.1 master数据库.. 83
5.2.2 model数据库.. 83
5.2.3 msdb数据库.. 83
5.2.4 tempdb数据库.. 83
5.3 创建数据库··· 83
5.3.1 使用SSMS创建数据库.. 84
5.3.2 使用T-SQL语句创建数据库.. 87
5.4 使用SSMS管理数据库··· 90
5.4.1 修改数据库的方法.. 90
5.4.2 修改数据库的初始大小.. 91
5.4.3 增加数据库的容量.. 92
5.4.4 缩减数据库的容量.. 93
5.4.5 修改数据库的名称.. 93
5.5 使用T-SQL管理数据库··· 94
5.5.1 ALTER DATABASE的语法结构.. 94
5.5.2 修改数据库数据文件的初始大小.. 95
5.5.3 使用T-SQL语句增加数据库容量.. 95
5.5.4 使用T-SQL语句缩减数据库容量.. 96
5.5.5 使用T-SQL语句修改数据库名称.. 97
5.6 查看数据库信息··· 98
5.6.1 使用目录视图.. 98
5.6.2 使用函数查看数据库信息.. 98
5.6.3 使用系统存储过程.. 100
5.6.4 使用SSMS查看数据库信息.. 100
5.7 删除数据库··· 101
5.7.1 使用SSMS删除数据库.. 101
5.7.2 使用T-SQL语句删除数据库.. 102
5.8 疑难解惑··· 102
5.9 经典习题··· 103
第6章 数据表的创建与管理·· 104
6.1 认识数据库对象··· 104
6.1.1 数据表.. 104
6.1.2 视图.. 105
6.1.3 索引.. 105
6.1.4 存储过程.. 105
6.1.5 触发器.. 105
6.2 数据类型··· 106
6.2.1 基本数据类型.. 106
6.2.2 自定义数据类型.. 109
6.2.3 删除自定义数据类型.. 111
6.3 创建数据表··· 113
6.3.1 在SSMS中创建数据表.. 113
6.3.2 使用T-SQL创建数据表.. 114
6.4 管理数据表··· 115
6.4.1 增加表字段.. 116
6.4.2 修改表字段.. 118
6.4.3 删除表字段.. 119
6.5 查看数据表··· 121
6.5.1 查看表结构.. 121
6.5.2 查看表信息.. 121
6.5.3 查看表数据.. 122
6.5.4 查看表关系.. 122
6.6 删除数据表··· 123
6.6.1 以界面方式删除数据表.. 123
6.6.2 使用T-SQL语句删除数据表.. 124
6.7 疑难解惑··· 125
6.8 经典习题··· 125
第7章 约束数据表中的数据·· 127
7.1 认识数据表中的约束··· 127
7.2 主键约束··· 128
7.2.1 在创建表时添加主键约束.. 128
7.2.2 在现有表中添加主键约束.. 130
7.2.3 定义多字段联合主键约束.. 132
7.2.4 删除主键约束.. 132
7.3 外键约束··· 133
7.3.1 在创建表时添加外键约束.. 133
7.3.2 在现有表中添加外键约束.. 135
7.3.3 删除外键约束.. 136
7.4 默认值约束··· 137
7.4.1 在创建表时添加默认值约束.. 138
7.4.2 在现有表中添加默认值约束.. 139
7.4.3 删除默认值约束.. 141
7.5 检查约束··· 142
7.5.1 在创建表时添加检查约束.. 142
7.5.2 在现有表中添加检查约束.. 144
7.5.3 删除检查约束.. 145
7.6 性约束··· 146
7.6.1 在创建表时添加性约束.. 146
7.6.2 在现有表中添加性约束.. 149
7.6.3 删除性约束.. 150
7.7 非空约束··· 151
7.7.1 在创建表时添加非空约束.. 151
7.7.2 在现有表中添加非空约束.. 152
7.7.3 删除非空约束.. 153
7.8 使用SSMS管理数据表中的约束··· 153
7.8.1 使用SSMS管理主键约束.. 153
7.8.2 使用SSMS管理外键约束.. 155
7.8.3 使用SSMS管理默认值约束.. 158
7.8.4 使用SSMS管理检查约束.. 160
7.8.5 使用SSMS管理性约束.. 163
7.8.6 使用SSMS管理非空约束.. 165
7.9 疑难解惑··· 166
7.10 经典习题··· 166
第8章 管理数据表中的数据·· 168
8.1 使用INSERT语句插入数据··· 168
8.1.1 INSERT语句的语法规则.. 168
8.1.2 向表中所有字段插入数据.. 169
8.1.3 向表中指定字段插入数据.. 172
8.1.4 一次插入多行数据记录.. 173
8.1.5 将查询结果插入到表中.. 174
8.2 使用UPDATE语句修改数据··· 176
8.2.1 UPDATE语句的语法规则.. 177
8.2.2 修改表中某列所有数据记录.. 177
8.2.3 修改表中指定单行数据记录.. 178
8.2.4 修改表中指定多行数据记录.. 179
8.2.5 修改表中前N条数据记录.. 179
8.3 使用DELETE语句删除数据··· 180
8.3.1 DELETE语句的语法规则.. 180
8.3.2 删除表中的指定数据记录.. 181
8.3.3 删除表中前N条数据记录.. 182
8.3.4 删除表中的所有数据记录.. 183
8.4 在SSMS中管理数据表中的数据··· 184
8.4.1 向数据表中添加数据记录.. 184
8.4.2 修改数据表中的数据记录.. 185
8.4.3 删除数据表中的数据记录.. 185
8.5 疑难解惑··· 186
8.6 经典习题··· 187
第9章 查询数据表中的数据·· 188
9.1 查询工具的使用··· 188
9.1.1 SQL Server查询窗口.. 188
9.1.2 查询结果的显示方法.. 190
9.2 数据的简单查询··· 192
9.2.1 查询表中的全部数据.. 192
9.2.2 查询表中的指定数据.. 193
9.2.3 使用TOP关键字查询.. 193
9.2.4 查询的列为表达式.. 194
9.2.5 对查询结果排序.. 194
9.2.6 对查询结果分组.. 195
9.2.7 对分组结果过滤查询.. 196
9.3 使用WHERE子句进行条件查询··· 197
9.3.1 使用关系表达式查询.. 197
9.3.2 使用BETWEEN AND范围查询.. 199
9.3.3 使用IN关键字查询.. 200
9.3.4 使用LIKE关键字查询.. 200
9.3.5 使用IS NULL查询空值.. 203
9.4 使用聚合函数进行统计查询··· 204
9.4.1 使用SUM()求列的和.. 204
9.4.2 使用AVG()求列平均值.. 205
9.4.3 使用MAX()求列值.. 206
9.4.4 使用MIN()求列小值.. 207
9.4.5 使用COUNT()统计.. 208
9.5 疑难解惑··· 210
9.6 经典习题··· 210
第10章 数据表中数据的高级查询·· 212
10.1 多表之间的子查询··· 212
10.1.1 使用比较运算符的子查询.. 212
10.1.2 使用IN的子查询.. 215
10.1.3 使用ANY的子查询.. 216
10.1.4 使用ALL的子查询.. 217
10.1.5 使用SOME的子查询.. 217
10.1.6 使用EXISTS的子查询.. 218
10.2 多表内连接查询··· 220
10.2.1 笛卡儿积查询.. 220
10.2.2 内连接的简单查询.. 221
10.2.3 相等内连接的查询.. 221
10.2.4 不等内连接的查询.. 222
10.2.5 特殊的内连接查询.. 222
10.2.6 带条件的内连接查询.. 223
10.3 多表外连接查询··· 223
10.3.1 认识外连接查询.. 223
10.3.2 左外连接的查询.. 224
10.3.3 右外连接的查询.. 225
10.3.4 全外连接的查询.. 225
10.4 动态查询··· 226
10.5 疑难解惑··· 226
10.6 经典习题··· 227
第11章 系统函数与自定义函数·· 229
11.1 SQL Server 2017函数简介··· 229
11.2 字符串函数··· 230
11.2.1 ASCII()函数.. 230
11.2.2 CHAR()函数.. 230
11.2.3 LEFT()函数.. 230
11.2.4 RIGHT()函数.. 231
11.2.5 LTRIM()函数.. 231
11.2.6 RTRIM()函数.. 232
11.2.7 STR()函数.. 232
11.2.8 REVERSE(s)函数.. 232
11.2.9 LEN(str)函数.. 233
11.2.10 CHARINDEX函数.. 233
11.2.11 SUBSTRING()函数.. 234
11.2.12 LOWER()函数.. 234
11.2.13 UPPER()函数.. 235
11.2.14 REPLACE(s,s1,s2)函数.. 235
11.3 数学函数··· 235
11.3.1 ABS(x)函数.. 236
11.3.2 PI()函数.. 236
11.3.3 SQRT(x) 函数.. 236
11.3.4 RAND()和RAND(x)函数.. 236
11.3.5 ROUND(x,y)函数.. 237
11.3.6 SIGN(x) 函数.. 237
11.3.7 CEILING(x)和FLOOR(x)函数.. 238
11.3.8 POWER(x,y)、SQUARE(x)和EXP(x)函数.. 238
11.3.9 LOG(x)和LOG10(x)函数.. 239
11.3.10 RADIANS(x)和DEGREES(x)函数.. 240
11.3.11 SIN(x)和ASIN(x)函数.. 240
11.3.12 COS(x)和ACOS(x)函数.. 241
11.3.13 TAN(x)、ATAN(x)与COT(x)函数.. 242
11.4 日期和时间函数··· 242
11.4.1 GETDATE()函数.. 243
11.4.2 UTCDATE()函数.. 243
11.4.3 DAY(d)函数.. 243
11.4.4 MONTH(d)函数.. 244
11.4.5 YEAR(d)函数.. 244
11.4.6 DATENAME(dp,d)函数.. 244
11.4.7 DATEPART(dp,d)函数.. 245
11.4.8 DATEADD(dp,num,d)函数.. 245
11.5 系统信息函数··· 246
11.5.1 COL_LENGTH(table,column)函数.. 246
11.5.2 COL_NAME (table_id,column_id)函数.. 247
11.5.3 DATALENGTH (expression)函数.. 247
11.5.4 DB_ID(database_name) 247
11.5.5 DB_NAME(database_id)函数.. 248
11.5.6 GETANSINULL()(database_name)函数.. 248
11.5.7 HOST_ID()函数.. 249
11.5.8 HOST_NAME()函数.. 249
11.5.9 OBJECT_ID()函数.. 249
11.5.10 SUSER_SID (login_name)函数.. 250
11.5.11 SUSER_SNAME()函数.. 250
11.5.12 OBJECT_NAME()函数.. 251
11.5.13 USER_ID(user)函数.. 251
11.5.14 USER_NAME(id)函数.. 251
11.6 数据类型转换函数··· 252
11.6.1 CAST()函数.. 252
11.6.2 CONVERT()函数.. 252
11.7 文本和图像函数··· 253
11.7.1 TEXTPTR函数.. 253
11.7.2 TEXTVALID函数.. 254
11.8 自定义函数··· 254
11.8.1 自定义函数的语法.. 254
11.8.2 创建标量函数.. 255
11.8.3 创建表值函数.. 257
11.8.4 修改自定义函数.. 260
11.8.5 删除自定义函数.. 260
11.9 在SSMS中管理自定义函数··· 261
11.9.1 创建自定义函数.. 261
11.9.2 修改自定义函数.. 263
11.9.3 删除自定义函数.. 263
11.10 疑难解惑··· 264
11.11 经典习题··· 264
第12章 视图的创建与应用·· 266
12.1 什么是视图··· 266
12.1.1 视图的概念.. 266
12.1.2 视图的作用.. 267
12.1.3 视图的分类.. 268
12.2 创建视图··· 269
12.2.1 创建视图的语法规则.. 269
12.2.2 在单表上创建视图.. 270
12.2.3 在多表上创建视图.. 272
12.3 修改视图··· 273
12.3.1 修改视图的语法规则.. 273
12.3.2 修改视图的具体内容.. 273
12.3.3 重命名视图的名称.. 274
12.4 查看视图信息··· 275
12.4.1 通过SSMS查看.. 275
12.4.2 使用系统存储过程查看.. 276
12.5 通过视图更新数据··· 277
12.5.1 通过视图插入数据.. 277
12.5.2 通过视图修改数据.. 279
12.5.3 通过视图删除数据.. 280
12.6 删除视图··· 281
12.6.1 删除视图的语法.. 281
12.6.2 删除不用的视图.. 282
12.7 在SSMS中管理视图··· 282
12.7.1 创建视图.. 282
12.7.2 修改视图.. 284
12.7.3 删除视图.. 285
12.8 疑难解惑··· 285
12.9 经典习题··· 286
第13章 事务和锁的应用·· 287
13.1 事务管理··· 287
13.1.1 事务的原理.. 288
13.1.2 事务管理的常用语句.. 289
13.1.3 事务的隔离级别.. 289
13.1.4 事务的应用实例.. 290
13.2 锁的应用··· 292
13.2.1 锁的内涵与作用.. 292
13.2.2 可锁定资源与锁的类型.. 293
13.2.3 死锁的原因.. 294
13.2.4 锁的应用实例.. 295
13.3 疑难解惑··· 299
13.4 经典习题··· 299
第14章 索引的创建和使用·· 300
14.1 什么是索引··· 300
14.1.1 索引的作用.. 300
14.1.2 索引的优缺点.. 301
14.1.3 索引的分类.. 301
14.1.4 索引的设计准则.. 302
14.2 创建索引··· 303
14.2.1 创建索引的语法.. 303
14.2.2 创建聚集索引.. 305
14.2.3 创建非聚集索引.. 306
14.2.4 创建复合索引.. 306
14.3 修改索引··· 307
14.3.1 修改索引的语法.. 307
14.3.2 禁用启用索引.. 307
14.3.3 重新生成索引.. 308
14.3.4 修改索引的名称.. 309
14.4 查看索引··· 309
14.4.1 查看数据表中的索引.. 310
14.4.2 查看索引的统计信息.. 310
14.5 删除索引··· 311
14.5.1 删除索引的语法.. 311
14.5.2 删除一个索引.. 312
14.5.3 同时删除多个索引.. 313
14.6 在SSMS中管理索引··· 313
14.6.1 在SSMS中创建索引.. 313
14.6.2 在SSMS中查看索引.. 315
14.6.3 在SSMS中修改索引.. 316
14.6.4 在SSMS中删除索引.. 317
14.7 疑难解惑··· 318
14.8 经典习题··· 319
第15章 游标的创建与应用·· 320
15.1 认识游标··· 320
15.1.1 游标的概念.. 320
15.1.2 游标的优点.. 321
15.1.3 游标的分类.. 321
15.2 游标的基本操作··· 322
15.2.1 声明游标.. 322
15.2.2 打开游标.. 324
15.2.3 读取游标.. 324
15.2.4 关闭游标.. 326
15.2.5 释放游标.. 326
15.3 游标的运用··· 327
15.3.1 使用游标变量.. 327
15.3.2 用游标为变量赋值.. 328
15.3.3 改变游标中行的顺序.. 329
15.3.4 使用游标修改数据.. 330
15.3.5 使用游标删除数据.. 331
15.4 使用系统存储过程查看游标属性··· 332
15.4.1 查看服务器游标的属性.. 332
15.4.2 查看当前连接的服务器游标属性.. 334
15.4.3 查看服务器游标结果集中的列属性.. 336
15.4.4 查看服务器游标被引用对象或基本表的属性.. 337
15.5 疑难解惑··· 339
15.6 经典习题··· 339
第16章 存储过程的创建与应用·· 340
16.1 认识存储过程··· 340
16.1.1 存储过程的优点.. 340
16.1.2 存储过程的类型.. 341
16.2 创建存储过程··· 342
16.2.1 创建存储过程的语法.. 342
16.2.2 创建不带参数的存储过程.. 343
16.2.3 创建带输入参数的存储过程.. 344
16.2.4 创建带输出参数的存储过程.. 345
16.2.5 创建带加密选项的存储过程.. 346
16.3 执行存储过程··· 346
16.3.1 执行存储过程的语法.. 347
16.3.2 执行不带参数的存储过程.. 348
16.3.3 执行带输入参数的存储过程.. 348
16.3.4 执行带输出参数的存储过程.. 350
16.4 修改存储过程··· 350
16.4.1 修改存储过程的语法.. 350
16.4.2 修改存储过程的内容.. 351
16.4.3 修改存储过程的名称.. 352
16.5 查看存储过程··· 352
16.5.1 使用sp_helptext查看.. 352
16.5.2 使用sys.sql_modules查看.. 353
16.5.3 使用OBJECT_DEFINITION查看.. 353
16.6 删除存储过程··· 354
16.6.1 删除存储过程的语法.. 354
16.6.2 删除不需要的存储过程.. 354
16.7 在SSMS中管理存储过程··· 355
16.7.1 在SSMS中创建存储过程.. 356
16.7.2 在SSMS中执行存储过程.. 357
16.7.3 在SSMS中修改存储过程.. 358
16.7.4 在SSMS中重命名存储过程.. 358
16.7.5 在SSMS中查看存储过程信息.. 359
16.7.6 在SSMS中删除存储过程.. 360
16.8 疑难解惑··· 360
16.9 经典习题··· 361
第17章 触发器的创建与应用·· 362
17.1 认识触发器··· 362
17.1.1 触发器的概念.. 362
17.1.2 触发器的作用.. 363
17.1.3 触发器的分类.. 363
17.2 创建触发器··· 364
17.2.1 创建DML触发器.. 364
17.2.2 创建DDL触发器.. 369
17.2.3 创建登录触发器.. 371
17.3 修改触发器··· 373
17.3.1 修改DML触发器.. 373
17.3.2 修改DDL触发器.. 374
17.3.3 修改登录触发器.. 375
17.4 管理触发器··· 376
17.4.1 禁用触发器.. 376
17.4.2 启用触发器.. 377
17.4.3 查看触发器.. 378
17.4.4 删除触发器.. 379
17.4.5 重命名触发器.. 379
17.5 认识其他触发器··· 380
17.5.1 替代触发器.. 380
17.5.2 嵌套触发器.. 381
17.5.3 递归触发器.. 382
17.6 在SSMS中管理触发器··· 383
17.6.1 在SSMS中创建触发器.. 383
17.6.2 在SSMS中修改触发器.. 384
17.6.3 在SSMS中查看触发器.. 385
17.6.4 在SSMS中删除触发器.. 385
17.7 疑难解惑··· 386
17.8 经典习题··· 386
第18章 数据安全相关对象的管理·· 387
18.1 与数据库安全相关的对象··· 387
18.2 登录账户的管理··· 389
18.2.1 创建登录账户.. 389
18.2.2 修改登录账户.. 391
18.2.3 删除登录账户.. 392
18.3 在SSMS中管理登录账户··· 392
18.3.1 创建登录账户.. 392
18.3.2 修改登录账户.. 394
18.3.3 删除登录账户.. 395
18.4 SQL Server的角色管理··· 396
18.4.1 固定服务器角色.. 396
18.4.2 数据库角色.. 397
18.4.3 自定义数据库角色.. 397
18.4.4 应用程序角色.. 400
18.4.5 将登录指派到角色.. 402
18.4.6 将角色指派到多个登录账户.. 402
18.5 SQL Server的权限管理··· 404
18.5.1 认识权限.. 404
18.5.2 授予权限.. 404
18.5.3 拒绝权限.. 406
18.5.4 撤销权限.. 407
18.6 疑难解惑··· 408
18.7 经典习题··· 408
第19章 数据库的备份与恢复·· 409
19.1 认识数据库的备份与恢复··· 409
19.1.1 数据库的备份类型.. 410
19.1.2 数据库的恢复模式.. 410
19.1.3 配置数据库的恢复模式.. 411
19.2 数据库的备份设备··· 412
19.2.1 数据库的备份设备.. 412
19.2.2 创建数据库备份设备.. 413
19.2.3 查看数据库备份设备.. 414
19.2.4 删除数据库备份设备.. 415
19.3 数据库的备份··· 416
19.3.1 完整备份与差异备份.. 416
19.3.2 文件和文件组备份.. 418
19.3.3 事务日志的备份.. 420
19.4 数据库的还原··· 421
19.4.1 还原数据库的方式.. 421
19.4.2 还原前的注意事项.. 422
19.4.3 完整备份的还原.. 424
19.4.4 差异备份的还原.. 426
19.4.5 事务日志备份的还原.. 427
19.4.6 文件和文件组备份的还原.. 428
19.5 在SSMS中备份还原数据库··· 429
19.5.1 在SSMS中备份数据库.. 429
19.5.2 还原数据库备份文件.. 430
19.5.3 还原文件和文件组备份.. 432
19.6 疑难解惑··· 433
19.7 经典习题··· 434
第20章 数据库系统的自动化管理·· 435
20.1 认识SQL Server代理··· 435
20.1.1 什么是SQL Server代理.. 435
20.1.2 设置SQL Server代理.. 436
20.1.3 启动SQL Server代理.. 438
20.1.4 关闭SQL Server代理.. 438
20.2 SQL Server代理中的作业··· 440
20.2.1 创建一个作业.. 440
20.2.2 定义一个作业步骤.. 440
20.2.3 创建一个作业执行计划.. 441
20.2.4 查看与管理作业.. 442
20.3 管理中的维护计划··· 444
20.3.1 认识维护计划.. 444
20.3.2 使用向导创建维护计划.. 445
20.4 SQL Server代理中的警报··· 447
20.4.1 创建警报.. 447
20.4.2 查看警报.. 447
20.4.3 删除警报.. 448
20.5 SQL Server代理中的操作员··· 449
20.5.1 创建操作员.. 449
20.5.2 使用操作员.. 450
20.6 疑难解惑··· 451
20.7 经典习题··· 451
第1章 初识SQL Server 2017· 1
1.1 认识SQL Server 2017· 1
1.1.1 SQL Server 2017新特点.. 1
1.1.2 SQL Server 2017的版本.. 2
1.2 SQL Server 2017的组件··· 3
1.2.1 SQL Server 2017的数据库引擎.. 3
1.2.2 分析服务.. 4
1.2.3 集成服务.. 4
1.2.4 报表服务.. 4
1.3 SQL Server 2017的新增功能··· 4
1.3.1 数据库引擎中的新增功能.. 4
1.3.2 集成服务中的新增功能.. 5
1.3.3 分析服务中的新增功能.. 6
1.3.4 报表服务中的新增功能.. 6
1.3.5 机器学习中的新增功能.. 7
1.3.6 主数据服务中的新增功能.. 7
1.4 疑难解答··· 8
1.5 经典习题··· 8
第2章 SQL Server 2017的安装和配置·· 9
2.1 安装SQL Server 2017· 9
2.1.1 SQL Server 2017安装环境需求.. 9
2.1.2 安装SQL Server 2017. 10
2.1.3 SQL Server 2017常见实用程序.. 18
2.2 安装SQL Server Management Studio· 20
2.3 SQL Server Management Studio基本操作·································································· 21
2.3.1 SSMS的启动与连接.. 22
2.3.2 使用模板资源管理器.. 23
2.3.3 解决方案和项目脚本.. 24
2.3.4 配置服务器的属性.. 25
2.3.5 查询编辑器的应用.. 32
2.4 疑难解惑··· 36
2.5 经典习题··· 36
第3章 Transact-SQL语言基础·· 37
3.1 Transact-SQL概述··· 37
3.1.1 什么是Transact-SQL. 38
3.1.2 T-SQL语法的约定.. 38
3.1.3 标识符的命名规则.. 40
3.2 常量··· 41
3.2.1 数字常量.. 41
3.2.2 字符串常量.. 42
3.2.3 日期和时间常量.. 42
3.2.4 符号常量.. 42
3.3 变量··· 43
3.3.1 全局变量.. 43
3.3.2 局部变量.. 46
3.3.3 批处理和脚本.. 47
3.4 运算符和表达式··· 49
3.4.1 算术运算符.. 49
3.4.2 比较运算符.. 49
3.4.3 逻辑运算符.. 50
3.4.4 连接运算符.. 50
3.4.5 按位运算符.. 50
3.4.6 运算符的优先级.. 51
3.4.7 什么是表达式.. 51
3.4.8 表达式的分类.. 51
3.5 Transact-SQL语言中的通配符··· 52
3.6 Transact-SQL语言中的注释··· 53
3.7 疑难解惑··· 54
3.8 经典习题··· 54
第4章 Transact-SQL语句的应用·· 55
4.1 数据定义语句··· 55
4.1.1 创建对象CREATE语句.. 55
4.1.2 删除对象DROP语句.. 59
4.1.3 修改对象ALTER语句.. 59
4.2 数据操作语句··· 61
4.2.1 数据插入INSERT语句.. 62
4.2.2 数据修改UPDATE语句.. 63
4.2.3 数据删除DELETE语句.. 64
4.2.4 数据查询SELECT语句.. 65
4.3 数据控制语句··· 67
4.3.1 授予权限GRANT语句.. 67
4.3.2 收回权限REVOKE语句.. 68
4.3.3 禁止权限DENY语句.. 68
4.4 其他基本语句··· 69
4.4.1 数据声明DECLARE语句.. 69
4.4.2 数据赋值SET语句.. 70
4.4.3 数据输出PRINT语句.. 71
4.5 流程控制语句··· 71
4.5.1 BEGIN…END语句.. 71
4.5.2 IF…ELSE语句.. 72
4.5.3 CASE语句.. 73
4.5.4 WHILE语句.. 75
4.5.5 GOTO语句.. 76
4.5.6 WAITFOR语句.. 77
4.5.7 RETURN语句.. 78
4.6 批处理语句··· 78
4.7 疑难解惑··· 80
4.8 经典习题··· 80
第5章 数据库的创建与管理·· 81
5.1 数据库组成··· 81
5.1.1 数据文件.. 82
5.1.2 日志文件.. 82
5.2 系统数据库··· 82
5.2.1 master数据库.. 83
5.2.2 model数据库.. 83
5.2.3 msdb数据库.. 83
5.2.4 tempdb数据库.. 83
5.3 创建数据库··· 83
5.3.1 使用SSMS创建数据库.. 84
5.3.2 使用T-SQL语句创建数据库.. 87
5.4 使用SSMS管理数据库··· 90
5.4.1 修改数据库的方法.. 90
5.4.2 修改数据库的初始大小.. 91
5.4.3 增加数据库的容量.. 92
5.4.4 缩减数据库的容量.. 93
5.4.5 修改数据库的名称.. 93
5.5 使用T-SQL管理数据库··· 94
5.5.1 ALTER DATABASE的语法结构.. 94
5.5.2 修改数据库数据文件的初始大小.. 95
5.5.3 使用T-SQL语句增加数据库容量.. 95
5.5.4 使用T-SQL语句缩减数据库容量.. 96
5.5.5 使用T-SQL语句修改数据库名称.. 97
5.6 查看数据库信息··· 98
5.6.1 使用目录视图.. 98
5.6.2 使用函数查看数据库信息.. 98
5.6.3 使用系统存储过程.. 100
5.6.4 使用SSMS查看数据库信息.. 100
5.7 删除数据库··· 101
5.7.1 使用SSMS删除数据库.. 101
5.7.2 使用T-SQL语句删除数据库.. 102
5.8 疑难解惑··· 102
5.9 经典习题··· 103
第6章 数据表的创建与管理·· 104
6.1 认识数据库对象··· 104
6.1.1 数据表.. 104
6.1.2 视图.. 105
6.1.3 索引.. 105
6.1.4 存储过程.. 105
6.1.5 触发器.. 105
6.2 数据类型··· 106
6.2.1 基本数据类型.. 106
6.2.2 自定义数据类型.. 109
6.2.3 删除自定义数据类型.. 111
6.3 创建数据表··· 113
6.3.1 在SSMS中创建数据表.. 113
6.3.2 使用T-SQL创建数据表.. 114
6.4 管理数据表··· 115
6.4.1 增加表字段.. 116
6.4.2 修改表字段.. 118
6.4.3 删除表字段.. 119
6.5 查看数据表··· 121
6.5.1 查看表结构.. 121
6.5.2 查看表信息.. 121
6.5.3 查看表数据.. 122
6.5.4 查看表关系.. 122
6.6 删除数据表··· 123
6.6.1 以界面方式删除数据表.. 123
6.6.2 使用T-SQL语句删除数据表.. 124
6.7 疑难解惑··· 125
6.8 经典习题··· 125
第7章 约束数据表中的数据·· 127
7.1 认识数据表中的约束··· 127
7.2 主键约束··· 128
7.2.1 在创建表时添加主键约束.. 128
7.2.2 在现有表中添加主键约束.. 130
7.2.3 定义多字段联合主键约束.. 132
7.2.4 删除主键约束.. 132
7.3 外键约束··· 133
7.3.1 在创建表时添加外键约束.. 133
7.3.2 在现有表中添加外键约束.. 135
7.3.3 删除外键约束.. 136
7.4 默认值约束··· 137
7.4.1 在创建表时添加默认值约束.. 138
7.4.2 在现有表中添加默认值约束.. 139
7.4.3 删除默认值约束.. 141
7.5 检查约束··· 142
7.5.1 在创建表时添加检查约束.. 142
7.5.2 在现有表中添加检查约束.. 144
7.5.3 删除检查约束.. 145
7.6 性约束··· 146
7.6.1 在创建表时添加性约束.. 146
7.6.2 在现有表中添加性约束.. 149
7.6.3 删除性约束.. 150
7.7 非空约束··· 151
7.7.1 在创建表时添加非空约束.. 151
7.7.2 在现有表中添加非空约束.. 152
7.7.3 删除非空约束.. 153
7.8 使用SSMS管理数据表中的约束··· 153
7.8.1 使用SSMS管理主键约束.. 153
7.8.2 使用SSMS管理外键约束.. 155
7.8.3 使用SSMS管理默认值约束.. 158
7.8.4 使用SSMS管理检查约束.. 160
7.8.5 使用SSMS管理性约束.. 163
7.8.6 使用SSMS管理非空约束.. 165
7.9 疑难解惑··· 166
7.10 经典习题··· 166
第8章 管理数据表中的数据·· 168
8.1 使用INSERT语句插入数据··· 168
8.1.1 INSERT语句的语法规则.. 168
8.1.2 向表中所有字段插入数据.. 169
8.1.3 向表中指定字段插入数据.. 172
8.1.4 一次插入多行数据记录.. 173
8.1.5 将查询结果插入到表中.. 174
8.2 使用UPDATE语句修改数据··· 176
8.2.1 UPDATE语句的语法规则.. 177
8.2.2 修改表中某列所有数据记录.. 177
8.2.3 修改表中指定单行数据记录.. 178
8.2.4 修改表中指定多行数据记录.. 179
8.2.5 修改表中前N条数据记录.. 179
8.3 使用DELETE语句删除数据··· 180
8.3.1 DELETE语句的语法规则.. 180
8.3.2 删除表中的指定数据记录.. 181
8.3.3 删除表中前N条数据记录.. 182
8.3.4 删除表中的所有数据记录.. 183
8.4 在SSMS中管理数据表中的数据··· 184
8.4.1 向数据表中添加数据记录.. 184
8.4.2 修改数据表中的数据记录.. 185
8.4.3 删除数据表中的数据记录.. 185
8.5 疑难解惑··· 186
8.6 经典习题··· 187
第9章 查询数据表中的数据·· 188
9.1 查询工具的使用··· 188
9.1.1 SQL Server查询窗口.. 188
9.1.2 查询结果的显示方法.. 190
9.2 数据的简单查询··· 192
9.2.1 查询表中的全部数据.. 192
9.2.2 查询表中的指定数据.. 193
9.2.3 使用TOP关键字查询.. 193
9.2.4 查询的列为表达式.. 194
9.2.5 对查询结果排序.. 194
9.2.6 对查询结果分组.. 195
9.2.7 对分组结果过滤查询.. 196
9.3 使用WHERE子句进行条件查询··· 197
9.3.1 使用关系表达式查询.. 197
9.3.2 使用BETWEEN AND范围查询.. 199
9.3.3 使用IN关键字查询.. 200
9.3.4 使用LIKE关键字查询.. 200
9.3.5 使用IS NULL查询空值.. 203
9.4 使用聚合函数进行统计查询··· 204
9.4.1 使用SUM()求列的和.. 204
9.4.2 使用AVG()求列平均值.. 205
9.4.3 使用MAX()求列值.. 206
9.4.4 使用MIN()求列小值.. 207
9.4.5 使用COUNT()统计.. 208
9.5 疑难解惑··· 210
9.6 经典习题··· 210
第10章 数据表中数据的高级查询·· 212
10.1 多表之间的子查询··· 212
10.1.1 使用比较运算符的子查询.. 212
10.1.2 使用IN的子查询.. 215
10.1.3 使用ANY的子查询.. 216
10.1.4 使用ALL的子查询.. 217
10.1.5 使用SOME的子查询.. 217
10.1.6 使用EXISTS的子查询.. 218
10.2 多表内连接查询··· 220
10.2.1 笛卡儿积查询.. 220
10.2.2 内连接的简单查询.. 221
10.2.3 相等内连接的查询.. 221
10.2.4 不等内连接的查询.. 222
10.2.5 特殊的内连接查询.. 222
10.2.6 带条件的内连接查询.. 223
10.3 多表外连接查询··· 223
10.3.1 认识外连接查询.. 223
10.3.2 左外连接的查询.. 224
10.3.3 右外连接的查询.. 225
10.3.4 全外连接的查询.. 225
10.4 动态查询··· 226
10.5 疑难解惑··· 226
10.6 经典习题··· 227
第11章 系统函数与自定义函数·· 229
11.1 SQL Server 2017函数简介··· 229
11.2 字符串函数··· 230
11.2.1 ASCII()函数.. 230
11.2.2 CHAR()函数.. 230
11.2.3 LEFT()函数.. 230
11.2.4 RIGHT()函数.. 231
11.2.5 LTRIM()函数.. 231
11.2.6 RTRIM()函数.. 232
11.2.7 STR()函数.. 232
11.2.8 REVERSE(s)函数.. 232
11.2.9 LEN(str)函数.. 233
11.2.10 CHARINDEX函数.. 233
11.2.11 SUBSTRING()函数.. 234
11.2.12 LOWER()函数.. 234
11.2.13 UPPER()函数.. 235
11.2.14 REPLACE(s,s1,s2)函数.. 235
11.3 数学函数··· 235
11.3.1 ABS(x)函数.. 236
11.3.2 PI()函数.. 236
11.3.3 SQRT(x) 函数.. 236
11.3.4 RAND()和RAND(x)函数.. 236
11.3.5 ROUND(x,y)函数.. 237
11.3.6 SIGN(x) 函数.. 237
11.3.7 CEILING(x)和FLOOR(x)函数.. 238
11.3.8 POWER(x,y)、SQUARE(x)和EXP(x)函数.. 238
11.3.9 LOG(x)和LOG10(x)函数.. 239
11.3.10 RADIANS(x)和DEGREES(x)函数.. 240
11.3.11 SIN(x)和ASIN(x)函数.. 240
11.3.12 COS(x)和ACOS(x)函数.. 241
11.3.13 TAN(x)、ATAN(x)与COT(x)函数.. 242
11.4 日期和时间函数··· 242
11.4.1 GETDATE()函数.. 243
11.4.2 UTCDATE()函数.. 243
11.4.3 DAY(d)函数.. 243
11.4.4 MONTH(d)函数.. 244
11.4.5 YEAR(d)函数.. 244
11.4.6 DATENAME(dp,d)函数.. 244
11.4.7 DATEPART(dp,d)函数.. 245
11.4.8 DATEADD(dp,num,d)函数.. 245
11.5 系统信息函数··· 246
11.5.1 COL_LENGTH(table,column)函数.. 246
11.5.2 COL_NAME (table_id,column_id)函数.. 247
11.5.3 DATALENGTH (expression)函数.. 247
11.5.4 DB_ID(database_name) 247
11.5.5 DB_NAME(database_id)函数.. 248
11.5.6 GETANSINULL()(database_name)函数.. 248
11.5.7 HOST_ID()函数.. 249
11.5.8 HOST_NAME()函数.. 249
11.5.9 OBJECT_ID()函数.. 249
11.5.10 SUSER_SID (login_name)函数.. 250
11.5.11 SUSER_SNAME()函数.. 250
11.5.12 OBJECT_NAME()函数.. 251
11.5.13 USER_ID(user)函数.. 251
11.5.14 USER_NAME(id)函数.. 251
11.6 数据类型转换函数··· 252
11.6.1 CAST()函数.. 252
11.6.2 CONVERT()函数.. 252
11.7 文本和图像函数··· 253
11.7.1 TEXTPTR函数.. 253
11.7.2 TEXTVALID函数.. 254
11.8 自定义函数··· 254
11.8.1 自定义函数的语法.. 254
11.8.2 创建标量函数.. 255
11.8.3 创建表值函数.. 257
11.8.4 修改自定义函数.. 260
11.8.5 删除自定义函数.. 260
11.9 在SSMS中管理自定义函数··· 261
11.9.1 创建自定义函数.. 261
11.9.2 修改自定义函数.. 263
11.9.3 删除自定义函数.. 263
11.10 疑难解惑··· 264
11.11 经典习题··· 264
第12章 视图的创建与应用·· 266
12.1 什么是视图··· 266
12.1.1 视图的概念.. 266
12.1.2 视图的作用.. 267
12.1.3 视图的分类.. 268
12.2 创建视图··· 269
12.2.1 创建视图的语法规则.. 269
12.2.2 在单表上创建视图.. 270
12.2.3 在多表上创建视图.. 272
12.3 修改视图··· 273
12.3.1 修改视图的语法规则.. 273
12.3.2 修改视图的具体内容.. 273
12.3.3 重命名视图的名称.. 274
12.4 查看视图信息··· 275
12.4.1 通过SSMS查看.. 275
12.4.2 使用系统存储过程查看.. 276
12.5 通过视图更新数据··· 277
12.5.1 通过视图插入数据.. 277
12.5.2 通过视图修改数据.. 279
12.5.3 通过视图删除数据.. 280
12.6 删除视图··· 281
12.6.1 删除视图的语法.. 281
12.6.2 删除不用的视图.. 282
12.7 在SSMS中管理视图··· 282
12.7.1 创建视图.. 282
12.7.2 修改视图.. 284
12.7.3 删除视图.. 285
12.8 疑难解惑··· 285
12.9 经典习题··· 286
第13章 事务和锁的应用·· 287
13.1 事务管理··· 287
13.1.1 事务的原理.. 288
13.1.2 事务管理的常用语句.. 289
13.1.3 事务的隔离级别.. 289
13.1.4 事务的应用实例.. 290
13.2 锁的应用··· 292
13.2.1 锁的内涵与作用.. 292
13.2.2 可锁定资源与锁的类型.. 293
13.2.3 死锁的原因.. 294
13.2.4 锁的应用实例.. 295
13.3 疑难解惑··· 299
13.4 经典习题··· 299
第14章 索引的创建和使用·· 300
14.1 什么是索引··· 300
14.1.1 索引的作用.. 300
14.1.2 索引的优缺点.. 301
14.1.3 索引的分类.. 301
14.1.4 索引的设计准则.. 302
14.2 创建索引··· 303
14.2.1 创建索引的语法.. 303
14.2.2 创建聚集索引.. 305
14.2.3 创建非聚集索引.. 306
14.2.4 创建复合索引.. 306
14.3 修改索引··· 307
14.3.1 修改索引的语法.. 307
14.3.2 禁用启用索引.. 307
14.3.3 重新生成索引.. 308
14.3.4 修改索引的名称.. 309
14.4 查看索引··· 309
14.4.1 查看数据表中的索引.. 310
14.4.2 查看索引的统计信息.. 310
14.5 删除索引··· 311
14.5.1 删除索引的语法.. 311
14.5.2 删除一个索引.. 312
14.5.3 同时删除多个索引.. 313
14.6 在SSMS中管理索引··· 313
14.6.1 在SSMS中创建索引.. 313
14.6.2 在SSMS中查看索引.. 315
14.6.3 在SSMS中修改索引.. 316
14.6.4 在SSMS中删除索引.. 317
14.7 疑难解惑··· 318
14.8 经典习题··· 319
第15章 游标的创建与应用·· 320
15.1 认识游标··· 320
15.1.1 游标的概念.. 320
15.1.2 游标的优点.. 321
15.1.3 游标的分类.. 321
15.2 游标的基本操作··· 322
15.2.1 声明游标.. 322
15.2.2 打开游标.. 324
15.2.3 读取游标.. 324
15.2.4 关闭游标.. 326
15.2.5 释放游标.. 326
15.3 游标的运用··· 327
15.3.1 使用游标变量.. 327
15.3.2 用游标为变量赋值.. 328
15.3.3 改变游标中行的顺序.. 329
15.3.4 使用游标修改数据.. 330
15.3.5 使用游标删除数据.. 331
15.4 使用系统存储过程查看游标属性··· 332
15.4.1 查看服务器游标的属性.. 332
15.4.2 查看当前连接的服务器游标属性.. 334
15.4.3 查看服务器游标结果集中的列属性.. 336
15.4.4 查看服务器游标被引用对象或基本表的属性.. 337
15.5 疑难解惑··· 339
15.6 经典习题··· 339
第16章 存储过程的创建与应用·· 340
16.1 认识存储过程··· 340
16.1.1 存储过程的优点.. 340
16.1.2 存储过程的类型.. 341
16.2 创建存储过程··· 342
16.2.1 创建存储过程的语法.. 342
16.2.2 创建不带参数的存储过程.. 343
16.2.3 创建带输入参数的存储过程.. 344
16.2.4 创建带输出参数的存储过程.. 345
16.2.5 创建带加密选项的存储过程.. 346
16.3 执行存储过程··· 346
16.3.1 执行存储过程的语法.. 347
16.3.2 执行不带参数的存储过程.. 348
16.3.3 执行带输入参数的存储过程.. 348
16.3.4 执行带输出参数的存储过程.. 350
16.4 修改存储过程··· 350
16.4.1 修改存储过程的语法.. 350
16.4.2 修改存储过程的内容.. 351
16.4.3 修改存储过程的名称.. 352
16.5 查看存储过程··· 352
16.5.1 使用sp_helptext查看.. 352
16.5.2 使用sys.sql_modules查看.. 353
16.5.3 使用OBJECT_DEFINITION查看.. 353
16.6 删除存储过程··· 354
16.6.1 删除存储过程的语法.. 354
16.6.2 删除不需要的存储过程.. 354
16.7 在SSMS中管理存储过程··· 355
16.7.1 在SSMS中创建存储过程.. 356
16.7.2 在SSMS中执行存储过程.. 357
16.7.3 在SSMS中修改存储过程.. 358
16.7.4 在SSMS中重命名存储过程.. 358
16.7.5 在SSMS中查看存储过程信息.. 359
16.7.6 在SSMS中删除存储过程.. 360
16.8 疑难解惑··· 360
16.9 经典习题··· 361
第17章 触发器的创建与应用·· 362
17.1 认识触发器··· 362
17.1.1 触发器的概念.. 362
17.1.2 触发器的作用.. 363
17.1.3 触发器的分类.. 363
17.2 创建触发器··· 364
17.2.1 创建DML触发器.. 364
17.2.2 创建DDL触发器.. 369
17.2.3 创建登录触发器.. 371
17.3 修改触发器··· 373
17.3.1 修改DML触发器.. 373
17.3.2 修改DDL触发器.. 374
17.3.3 修改登录触发器.. 375
17.4 管理触发器··· 376
17.4.1 禁用触发器.. 376
17.4.2 启用触发器.. 377
17.4.3 查看触发器.. 378
17.4.4 删除触发器.. 379
17.4.5 重命名触发器.. 379
17.5 认识其他触发器··· 380
17.5.1 替代触发器.. 380
17.5.2 嵌套触发器.. 381
17.5.3 递归触发器.. 382
17.6 在SSMS中管理触发器··· 383
17.6.1 在SSMS中创建触发器.. 383
17.6.2 在SSMS中修改触发器.. 384
17.6.3 在SSMS中查看触发器.. 385
17.6.4 在SSMS中删除触发器.. 385
17.7 疑难解惑··· 386
17.8 经典习题··· 386
第18章 数据安全相关对象的管理·· 387
18.1 与数据库安全相关的对象··· 387
18.2 登录账户的管理··· 389
18.2.1 创建登录账户.. 389
18.2.2 修改登录账户.. 391
18.2.3 删除登录账户.. 392
18.3 在SSMS中管理登录账户··· 392
18.3.1 创建登录账户.. 392
18.3.2 修改登录账户.. 394
18.3.3 删除登录账户.. 395
18.4 SQL Server的角色管理··· 396
18.4.1 固定服务器角色.. 396
18.4.2 数据库角色.. 397
18.4.3 自定义数据库角色.. 397
18.4.4 应用程序角色.. 400
18.4.5 将登录指派到角色.. 402
18.4.6 将角色指派到多个登录账户.. 402
18.5 SQL Server的权限管理··· 404
18.5.1 认识权限.. 404
18.5.2 授予权限.. 404
18.5.3 拒绝权限.. 406
18.5.4 撤销权限.. 407
18.6 疑难解惑··· 408
18.7 经典习题··· 408
第19章 数据库的备份与恢复·· 409
19.1 认识数据库的备份与恢复··· 409
19.1.1 数据库的备份类型.. 410
19.1.2 数据库的恢复模式.. 410
19.1.3 配置数据库的恢复模式.. 411
19.2 数据库的备份设备··· 412
19.2.1 数据库的备份设备.. 412
19.2.2 创建数据库备份设备.. 413
19.2.3 查看数据库备份设备.. 414
19.2.4 删除数据库备份设备.. 415
19.3 数据库的备份··· 416
19.3.1 完整备份与差异备份.. 416
19.3.2 文件和文件组备份.. 418
19.3.3 事务日志的备份.. 420
19.4 数据库的还原··· 421
19.4.1 还原数据库的方式.. 421
19.4.2 还原前的注意事项.. 422
19.4.3 完整备份的还原.. 424
19.4.4 差异备份的还原.. 426
19.4.5 事务日志备份的还原.. 427
19.4.6 文件和文件组备份的还原.. 428
19.5 在SSMS中备份还原数据库··· 429
19.5.1 在SSMS中备份数据库.. 429
19.5.2 还原数据库备份文件.. 430
19.5.3 还原文件和文件组备份.. 432
19.6 疑难解惑··· 433
19.7 经典习题··· 434
第20章 数据库系统的自动化管理·· 435
20.1 认识SQL Server代理··· 435
20.1.1 什么是SQL Server代理.. 435
20.1.2 设置SQL Server代理.. 436
20.1.3 启动SQL Server代理.. 438
20.1.4 关闭SQL Server代理.. 438
20.2 SQL Server代理中的作业··· 440
20.2.1 创建一个作业.. 440
20.2.2 定义一个作业步骤.. 440
20.2.3 创建一个作业执行计划.. 441
20.2.4 查看与管理作业.. 442
20.3 管理中的维护计划··· 444
20.3.1 认识维护计划.. 444
20.3.2 使用向导创建维护计划.. 445
20.4 SQL Server代理中的警报··· 447
20.4.1 创建警报.. 447
20.4.2 查看警报.. 447
20.4.3 删除警报.. 448
20.5 SQL Server代理中的操作员··· 449
20.5.1 创建操作员.. 449
20.5.2 使用操作员.. 450
20.6 疑难解惑··· 451
20.7 经典习题··· 451
猜您喜欢