目录 第1章 数据库与SQL Server 2017 001 1.1 数据库与关系数据库 001 1.1.1 数据库简介 001 1.1.2 数据模型 001 1.1.3 关系数据库 002 1.2 常见数据库产品介绍 003 1.3 安装SQL Server 2017 004 1.4 升级SQL Server 2017 011 1.5 卸载SQL Server 2017 015 1.6 课后习题与练习 015 1.7 新手疑难问题解答 016 1.8 实战训练 017 第2章 SQL Server 2017管理工具的应用 018 2.1 安装SQL Server Management Studio 018 2.2 进入SQL Server 2017数据库 020 2.2.1 启动SQL Server 2017数据库服务 020 2.2.2 登录SQL Server 2017数据库 021 2.3 认识SQL Server 2017系统数据库 022 2.4 注册SQL Server 2017服务器 022 2.4.1 创建与删除服务器组 022 2.4.2 注册与删除服务器 023 2.5 配置身份验证模式 024 2.6 课后习题与练习 025 2.7 新手疑难问题解答 026 2.8 实战训练 026 第3章 数据库的创建与操作 028 3.1 创建数据库 028 3.1.1 了解数据库的结构 028 3.1.2 创建数据库的语法 028 3.1.3 一行语句创建数据库 029 3.1.4 创建带有自定义参数的数据库 029 3.1.5 创建包含多个文件的数据库 030 3.1.6 创建包含文件组的数据库 032 3.1.7 以图形向导方式创建数据库 033 3.2 修改数据库 035 3.2.1 修改数据库的名称 035 3.2.2 修改数据库的初始大小 036 3.2.3 修改数据库的最大容量 037 3.2.4 给数据库添加数据文件 038 3.2.5 清理数据库中无用的文件 041 3.2.6 以图形向导方式修改数据库 042 3.3 删除数据库 048 3.3.1 一行语句删除数据库 048 3.3.2 以图形向导方式删除数据库 048 3.4 查看数据库信息 049 3.4.1 查看系统中的全部数据库 049 3.4.2 查看数据库中的文件信息 049 3.4.3 查看数据库的空间使用情况 050 3.4.4 查看数据库和文件的状态 050 3.5 课后习题与练习 051 3.6 新手疑难问题解答 052 3.7 实战训练 052 第4章 数据表的创建与操作 053 4.1 数据表中能存放的数据类型 053 4.1.1 整数数据类型 053 4.1.2 浮点数据类型 053 4.1.3 字符数据类型 054 4.1.4 日期时间数据类型 054 4.1.5 货币数据类型 055 4.1.6 其他数据类型 055 4.2 自定义数据类型 055 4.2.1 创建自定义数据类型 055 4.2.2 删除自定义数据类型 057 4.3 创建数据表 059 4.3.1 创建数据表的基本语法 059 4.3.2 使用CREATE语句创建数据表 059 4.3.3 创建包含自动增长字段的数据表 060 4.3.4 创建包含自定义数据类型的数据表 061 4.3.5 在文件组上创建数据表 062 4.3.6 认识数据库中的临时表 063 4.3.7 以图形向导的方式创建数据表 063 4.4 修改数据表 064 4.4.1 变一变数据表的名称 064 4.4.2 更改表字段的数据类型 065 4.4.3 表字段的添加与删除 065 4.4.4 更改表字段的名称 066 4.4.5 以图形向导方式修改表 067 4.5 查看表信息 069 4.5.1 使用sp_help查看表信息 069 4.5.2 使用sys.objects查看表信息 070 4.5.3 使用information_schema.columns查看表信息 070 4.6 删除数据表 071 4.6.1 使用DROP语句删除数据表 071 4.6.2 以图形向导方式删除数据表 072 4.7 课后习题与练习 073 4.8 新手疑难问题解答 074 4.9 实战训练 074 第5章 数据表的完整性约束 075 5.1 数据完整性及其分类 075 5.1.1 数据完整性的分类 075 5.1.2 表中的约束条件有哪些 075 5.2 PRIMARY KEY约束 076 5.2.1 创建表时创建主键 076 5.2.2 修改表时创建主键 077 5.2.3 创建联合主键约束 078 5.2.4 删除表中的主键 079 5.3 FOREIGN KEY约束 081 5.3.1 创建表时创建外键 081 5.3.2 修改表时创建外键 083 5.3.3 删除表中的外键 085 5.4 DEFAULT约束 087 5.4.1 创建表时创建DEFAULT约束 087 5.4.2 修改表时创建DEFAULT约束 088 5.4.3 删除表中的DEFAULT约束 089 5.5 CHECK约束 090 5.5.1 创建表时创建CHECK约束 091 5.5.2 修改表时创建CHECK约束 093 5.5.3 删除表中的CHECK约束 094 5.6 UNIQUE约束 095 5.6.1 创建表时创建UNIQUE约束 095 5.6.2 修改表时创建UNIQUE约束 098 5.6.3 删除表中的UNIQUE约束 099 5.7 NOT NULL约束 101 5.7.1 创建表时创建NOT NULL约束 101 5.7.2 修改表时创建NOT NULL约束 101 5.7.3 删除表中的NOT NULL约束 102 5.8 课后习题与练习 103 5.9 新手疑难问题解答 103 5.10 实战训练 104 第6章 插入、更新与删除数据记录 106 6.1 向数据表中插入数据 106 6.1.1 给表里的所有字段插入数据 106 6.1.2 向表中添加数据时使用默认值 110 6.1.3 一次插入多条数据 110 6.1.4 通过复制表数据插入数据 111 6.1.5 以图形向导方式添加数据 113 6.2 更新数据表中的数据 114 6.2.1 更新表中的全部数据 115 6.2.2 更新表中指定单行数据 115 6.2.3 更新表中指定多行数据 116 6.2.4 更新表中前N条数据 116 6.2.5 以图形向导方式更新数据 117 6.3 删除数据表中的数据 118 6.3.1 根据条件清除数据 118 6.3.2 删除前N条数据 119 6.3.3 清空表中的数据 119 6.3.4 以图形向导方式删除数据 120 6.4 课后习题与练习 121 6.5 新手疑难问题解答 122 6.6 实战训练 122 第7章 数据的简单查询 124 7.1 认识SELECT语句 124 7.2 数据的简单查询 124 7.2.1 查询表中所有数据 125 7.2.2 查询表中想要的数据 126 7.2.3 使用TOP查询数据 126 7.2.4 对查询结果进行计算 126 7.2.5 为结果列使用别名 127 7.2.6 在查询时去除重复项 127 7.3 使用WHERE子句进行选择查询 127 7.3.1 条件表达式的数据查询 127 7.3.2 范围条件的数据查询 128 7.3.3 列表条件的数据查询 129 7.3.4 使用LIKE模糊查询 130 7.3.5 未知空数据的查询 132 7.4 操作查询的结果 132 7.4.1 对查询结果进行排序 133 7.4.2 对查询结果进行分组 133 7.4.3 对分组结果过滤查询 134 7.5 使用聚合函数进行统计查询 134 7.5.1 使用SUM()求列的和 134 7.5.2 使用AVG()求列平均值 135 7.5.3 使用MAX()求列最大值 136 7.5.4 使用MIN()求列最小值 137 7.5.5 使用COUNT()统计 137 7.6 课后习题与练习 138 7.7 新手疑难问题解答 139 7.8 实战训练 139 第8章 数据的连接查询 140 8.1 子查询 140 8.1.1 子查询概述 140 8.1.2 简单的子查询 140 8.1.3 使用IN的子查询 142 8.1.4 使用ANY的子查询 142 8.1.5 使用ALL的子查询 143 8.1.6 使用SOME的子查询 143 8.1.7 使用EXISTS的子查询 144 8.1.8 使用UNION的子查询 144 8.2 内连接查询 145 8.2.1 笛卡儿积查询 145 8.2.2 内连接的简单查询 146 8.2.3 等值内连接查询 146 8.2.4 非等值内连接查询 147 8.2.5 自连接的内连接查询 148 8.2.6 带条件的内连接查询 148 8.3 外连接查询 149 8.3.1 认识外连接查询 149 8.3.2 左外连接查询 150 8.3.3 右外连接查询 150 8.3.4 全外连接查询 150 8.4 课后习题与练习 151 8.5 新手疑难问题解答 152 8.6 实战训练 152 第9章 使用T-SQL语言 153 9.1 T-SQL语言简介 153 9.2 常量和变量 154 9.2.1 常量 154 9.2.2 变量 155 9.3 流程控制语句 157 9.3.1 BEGIN…END语句 157 9.3.2 IF…ELSE语句 157 9.3.3 CASE语句 158 9.3.4 WHILE语句 159 9.3.5 GOTO语句 160 9.3.6 WAITFOR语句 161 9.4 认识运算符 161 9.4.1 赋值运算符 162 9.4.2 算术运算符 162 9.4.3 比较运算符 162 9.4.4 逻辑运算符 163 9.4.5 一元运算符 164 9.4.6 位运算符 164 9.4.7 运算符的优先级 164 9.5 注释与通配符 165 9.5.1 注释 165 9.5.2 通配符 166 9.6 课后习题与练习 166 9.7 新手疑难问题解答 167 9.8 实战训练 167 第10章 系统函数与自定义函数 168 10.1 系统函数 168 10.1.1 数学函数 168 10.1.2 字符串函数 170 10.1.3 日期和时间函数 172 10.1.4 获取系统参数函数 173 10.1.5 数据类型转换函数 175 10.2 使用T-SQL语句管理自定义函数 176 10.2.1 创建自定义函数的语法 176 10.2.2 创建标量值函数 176 10.2.3 创建表值函数 177 10.2.4 修改自定义函数 178 10.2.5 删除自定义函数 179 10.3 以图形向导方式管理自定义函数 179 10.3.1 创建自定义函数 179 10.3.2 修改自定义函数 180 10.3.3 删除自定义函数 181 10.4 课后习题与练习 181 10.5 新手疑难问题解答 182 10.6 实战训练 183 第11章 视图的创建与应用 184 11.1 了解视图 184 11.1.1 视图的作用 184 11.1.2 视图的分类 185 11.2 创建视图 185 11.2.1 创建视图的语法规则 185 11.2.2 在单表上创建视图 185 11.2.3 在多表上创建视图 186 11.2.4 以图形向导方式创建视图 187 11.3 修改视图 188 11.3.1 修改视图的语法规则 188 11.3.2 修改视图的具体内容 188 11.3.3 重命名视图的名称 189 11.3.4 以图形向导方式修改视图 189 11.4 删除视图 190 11.4.1 删除视图的语法 190 11.4.2 删除不用的视图 190 11.4.3 以图形向导方式删除视图 191 11.5 查看视图信息 191 11.5.1 以图形向导方式查看 191 11.5.2 使用系统存储过程查看 192 11.6 使用视图更新数据 193 11.6.1 通过视图插入数据 193 11.6.2 通过视图修改数据 194 11.6.3 通过视图删除数据 195 11.7 课后习题与练习 195 11.8 新手疑难问题解答 196 11.9 实战训练 197 第12章 索引的创建与应用 198 12.1 了解索引 198 12.1.1 索引的作用 198 12.1.2 索引的分类 198 12.1.3 索引的使用标准 199 12.2 创建索引 199 12.2.1 创建索引的语法 199 12.2.2 创建聚集索引 201 12.2.3 创建非聚集索引 201 12.2.4 创建复合索引 201 12.2.5 以图形向导方式创建索引 202 12.3 修改索引 203 12.3.1 修改索引的语法 203 12.3.2 禁用索引 204 12.3.3 重新生成索引 204 12.3.4 重命名索引 205 12.3.5 以图形向导方式修改索引 205 12.4 查询索引 207 12.4.1 使用系统存储过程查询索引 207 12.4.2 以图形向导方式查看索引 207 12.4.3 查看索引的统计信息 208 12.5 删除索引 209 12.5.1 删除索引的语法 209 12.5.2 一次删除一个索引 209 12.5.3 一次删除多个索引 209 12.5.4 以图形向导方式删除索引 210 12.6 课后习题与练习 210 12.7 新手疑难问题解答 211 12.8 实战训练 211 第13章 存储过程的创建与应用 212 13.1 了解存储过程 212 13.1.1 存储过程的作用 212 13.1.2 存储过程的类型 213 13.2 创建存储过程 213 13.2.1 创建存储过程的语法格式 213 13.2.2 创建不带参数的存储过程 214 13.2.3 创建带输入参数的存储过程 215 13.2.4 创建带输出参数的存储过程 216 13.2.5 创建带加密选项的存储过程 216 13.2.6 以图形向导方式创建存储过程 216 13.3 执行存储过程 218 13.3.1 执行存储过程的语法格式 218 13.3.2 执行不带参数的存储过程 219 13.3.3 执行带输入参数的存储过程 219 13.3.4 执行带输出参数的存储过程 220 13.3.5 以图形向导方式执行存储过程 220 13.4 修改存储过程 221 13.4.1 修改存储过程的语法格式 221 13.4.2 使用T-SQL语句修改存储过程 221 13.4.3 修改存储过程的名称 222 13.4.4 以图形向导方式修改存储过程 223 13.5 查看存储过程 223 13.5.1 使用系统存储过程查看信息 223 13.5.2 以图形向导方式查看存储过程 225 13.6 删除存储过程 225 13.6.1 使用T-SQL语句删除存储过程 225 13.6.2 以图形向导方式删除存储过程 226 13.7 课后习题与练习 226 13.8 新手疑难问题解答 227 13.9 实战训练 227 第14章 触发器的创建与应用 228 14.1 了解触发器 228 14.1.1 触发器的作用 228 14.1.2 触发器的分类 228 14.2 创建DML触发器 229 14.2.1 创建触发器的语法 229 14.2.2 INSERT触发器 230 14.2.3 DELETE触发器 231 14.2.4 UPDATE触发器 232 14.2.5 INSTEAD OF触发器 233 14.3 创建其他类型的触发器 234 14.3.1 创建DDL触发器 234 14.3.2 创建登录触发器 235 14.3.3 创建嵌套触发器 237 14.3.4 创建递归触发器 237 14.4 修改触发器 238 14.4.1 修改DML触发器 238 14.4.2 修改DDL触发器 239 14.4.3 修改登录触发器 239 14.5 管理触发器 240 14.5.1 禁用触发器 240 14.5.2 启用触发器 241 14.5.3 重命名触发器 241 14.5.4 使用sp_helptext查看触发器 242 14.5.5 以图形向导方式查看触发器信息 242 14.6 删除触发器 242 14.6.1 使用T-SQL语句删除触发器 242 14.6.2 以图形向导方式删除触发器 243 14.7 课后习题与练习 243 14.8 新手疑难问题解答 244 14.9 实战训练 245 第15章 游标、事务和锁的应用 246 15.1 游标的应用 246 15.1.1 声明游标 246 15.1.2 打开游标 247 15.1.3 读取游标 247 15.1.4 关闭游标 248 15.1.5 释放游标 249 15.2 事务的应用 249 15.2.1 什么是事务 249 15.2.2 事务的特性 249 15.2.3 启动和保存事务 250 15.2.4 提交和回滚事务 250 15.2.5 事务应用案例 251 15.3 锁的应用 252 15.3.1 什么是锁 252 15.3.2 锁的模式 253 15.3.3 锁的粒度 253 15.3.4 锁应用案例 253 15.4 课后习题与练习 255 15.5 新手疑难问题解答 256 15.6 实战训练 256 第16章 用户账户及角色权限的管理 257 16.1 与数据库安全相关的对象 257 16.1.1 数据库用户 257 16.1.2 用户权限 257 16.1.3 认识角色 257 16.1.4 登录账户 258 16.2 登录账号管理 258 16.2.1 创建登录账户 258 16.2.2 修改登录账户 263 16.2.3 删除登录账户 264 16.3 用户管理 264 16.3.1 创建用户 265 16.3.2 修改用户 266 16.3.3 删除用户 268 16.4 角色管理 269 16.4.1 认识角色 269 16.4.2 创建角色 271 16.4.3 修改角色 274 16.4.4 删除角色 275 16.5 权限管理 276 16.5.1 认识权限 276 16.5.2 授予权限 276 16.5.3 拒绝权限 276 16.5.4 撤销权限 277 16.6 课后习题与练习 278 16.7 新手疑难问题解答 279 16.8 实战训练 279 第17章 数据库的备份与还原 280 17.1 认识数据库的备份与恢复 280 17.1.1 数据库备份的类型 280 17.1.2 数据库的恢复模式 281 17.1.3 配置恢复模式 281 17.2 数据库的备份设备 282 17.2.1 创建数据库备份设备 282 17.2.2 查看数据库备份设备 283 17.2.3 删除数据库备份设备 283 17.3 备份数据库 284 17.3.1 完整备份 284 17.3.2 差异备份 285 17.3.3 事务日志备份 285 17.3.4 文件和文件组备份 285 17.3.5 以图形向导方式备份数据库 286 17.4 还原数据库 288 17.4.1 还原数据库文件 288 17.4.2 以图形向导方式还原数据库 288 17.4.3 还原文件和文件组 291 17.4.4 以图形向导方式还原文件组 292 17.5 课后习题与练习 293 17.6 新手疑难问题解答 294 17.7 实战训练 294 第18章 SQL Server数据库的维护 295 18.1 认识SQL Server代理 295 18.1.1 启动SQL Server代理 295 18.1.2 关闭SQL Server代理 296 18.2 维护计划 296 18.2.1 创建维护计划 296 18.2.2 执行维护计划 299 18.3 作业 300 18.3.1 创建一个作业 300 18.3.2 定义一个作业步骤 300 18.3.3 创建一个作业执行计划 302 18.3.4 查看与管理作业 304 18.4 警报 306 18.4.1 创建警报 306 18.4.2 查看警报 306 18.4.3 删除警报 307 18.5 操作员 308 18.5.1 创建操作员 308 18.5.2 使用操作员 308 18.6 全程加密 309 18.6.1 选择加密类型 310 18.6.2 设置主密钥配置 313 18.7 课后习题与练习 314 18.8 新手疑难问题解答 315 18.9 实战训练 316