目    录





第1章   数据库概述和SQL Server 2017开发环境	1
1.1  数据与数据联系的描述	1
1.1.1  信息与数据的描述	1
1.1.2  数据联系的描述	2
1.2  数据模型	2
1.2.1  数据模型的概念	2
1.2.2  关系数据模型简介	3
1.3  数据库与数据库管理系统	4
1.3.1  数据库及数据库系统	4
1.3.2  数据库管理系统	6
1.4  SQL Server 2017开发环境	7
1.4.1  SQL Server 2017系统简介	7
1.4.2  SQL Server 2017的安装	8
1.4.3  SQL Server Management Studio简介	16
习题1	21
第2章  数据库的创建与管理	23
2.1  数据库种类	23
2.2  数据库的存储结构	23
2.2.1  数据库文件	23
2.2.2  文件组	24
2.3  创建学生选课管理数据库	25
2.3.1  使用SQL Server Management Studio	25
2.3.2  使用CREATE DATABASE语句	26
2.3.3  使用模板创建数据库	27
2.4  数据库的管理	28
2.4.1  扩充数据文件和事务日志文件的容量	29
2.4.2  修改数据库的初始大小	31
2.4.3  更改数据库名称	33
2.4.4  数据库的其他操作	34
习题2	40
第3章  数据表的创建和管理	42
3.1  数据表概述	42
3.1.1  表的基本概念	42
3.1.2  SQL Server 2017的数据类型	43
3.1.3  列的属性	44
3.2  创建学生选课数据库的数据表	45
3.2.1  使用SQL Server Management Studio	45
3.2.2  使用CREATE TABLE语句	46
3.3  管理学生选课数据库的数据表	46
3.3.1  查看表结构	46
3.3.2  修改数据表	49
3.3.3  删除数据表	50
3.3.4  重命名数据表	51
3.4  学生选课数据库数据的完整性	52
3.4.1  数据完整性的分类	52
3.4.2  约束概述	53
3.4.3  主键约束	54
3.4.4  外键约束	56
3.4.5  唯一约束	60
3.4.6  检查约束	60
3.4.7  默认值约束	62
3.4.8  约束禁用和启用	63
3.5  数据表中数据的操作	64
3.5.1  插入记录	65
3.5.2  修改记录	68
3.5.3  删除记录	68
习题3	69
第4章  数据查询	70
4.1  SELECT语句	70
4.1.1  SELECT语句的语法格式	70
4.1.2  SELECT语句的执行方式	71
4.2  简单查询	73
4.2.1  SELECT子句	73
4.2.2  INTO子句	80
4.2.3  WHERE子句	80
4.2.4  ORDER BY子句	87
4.2.5  GROUP BY子句	88
4.2.6  HAVING子句	90
4.3  集合查询	92
4.3.1  集合并运算	92
4.3.2  集合交运算	92
4.3.3  集合差运算	93
4.4  连接查询	94
4.4.1  连接查询概述	94
4.4.2  交叉连接	94
4.4.3  内连接	95
4.4.4  自身连接	98
4.4.5  外连接	98
4.5  嵌套查询	101
4.5.1  单值嵌套	102
4.5.2  多值嵌套	103
4.5.3  相关子查询	107
4.6  在数据更新中使用查询语句	108
习题4	111
第5章  数据库编程技术基础	114
5.1  SQL基础	114
5.1.1  Transact-SQL的分类	114
5.1.2  Transact-SQL语法约定	114
5.1.3  Transact-SQL数据库对象命名方法	116
5.1.4  常量	117
5.1.5  变量	117
5.1.6  表达式和运算符	119
5.2  流程控制语句	121
5.3  函数	127
5.3.1  聚合函数	127
5.3.2  数学函数	127
5.3.3  字符串函数	129
5.3.4  日期和时间函数	130
5.3.5  系统函数	131
5.3.6  元数据函数	133
5.3.7  配置函数	134
5.3.8  系统统计函数	134
5.4  游标	135
5.4.1  游标的概念	135
5.4.2  游标的使用	135
5.4.3  游标的应用	137
习题5	140
第6章  视图和索引的应用	141
6.1  视图	141
6.1.1  视图概述	141
6.1.2  创建视图	143
6.1.3  视图的管理	150
6.1.4  视图的应用	155
6.2  索引	156
6.2.1  索引概述	156
6.2.2  创建索引	157
6.2.3  管理索引	160
6.2.4  索引的应用	165
习题6	165
第7章  存储过程的应用	167
7.1  存储过程概述	167
7.1.1  存储过程的概念	167
7.1.2  存储过程的特点	167
7.1.3  存储过程的分类	168
7.2  创建和执行用户存储过程	169
7.2.1  不带参数的存储过程	169
7.2.2  带输入参数的存储过程	172
7.2.3  带输出参数的存储过程	176
7.3  管理存储过程	177
7.3.1  查看存储过程	177
7.3.2  删除用户存储过程	178
7.3.3  修改存储过程	179
7.4  系统存储过程和扩展存储过程	180
7.4.1  系统存储过程	180
7.4.2  扩展存储过程	181
7.5  存储过程的具体应用	183
7.5.1  操作表的存储过程	183
7.5.2  获取信息的存储过程	184
习题7	184
第8章  触发器的应用	186
8.1  触发器概述	186
8.1.1  触发器的作用	186
8.1.2  触发器的分类	186
8.1.3  DML触发器与约束比较	187
8.1.4  INSERTED表和DELETED表	187
8.2  DML触发器	188
8.2.1  创建DML触发器	188
8.2.2  修改触发器	191
8.3  DDL触发器	193
8.4  管理触发器	195
8.4.1  查看触发器	195
8.4.2  删除触发器	196
8.4.3  禁用或启用触发器	196
8.5  触发器应用举例	198
习题8	201
第9章  数据库安全性管理	202
9.1  SQL Server 2017的安全机制	202
9.2  服务器安全的管理	203
9.2.1  身份验证模式	203
9.2.2  创建登录名	203
9.3  数据库用户的管理	211
9.3.1  默认用户	212
9.3.2  添加数据库用户	214
9.4  权限的管理	217
9.4.1  授权的安全对象	218
9.4.2  权限类别	218
9.4.3  权限管理	219
9.5  角色管理	222
9.5.1  服务器角色	222
9.5.2  数据库角色	224
习题9	230
?
第10章  SQL Server 2017数据库的日常维护	232
10.1  日常维护概述	232
10.2  数据库的备份和还原	232
10.2.1  备份数据库	232
10.2.2  还原数据库	237
10.3  使用Transact-SQL语句进行数据库的备份和恢复	240
10.3.1  用Transact-SQL语句备份数据库	240
10.3.2  用Transact-SQL语句恢复数据库	241
10.4  数据导出和导入	242
10.4.1  数据导出	242
10.4.2  数据导入	247
习题10	251
第11章  数据库应用系统开发基础	252
11.1  ADO.NET	252
11.1.1  ADO.NET概述	252
11.1.2  ADO.NET组件	252
11.1.3  使用ADO.NET开发数据库应用程序的一般步骤	253
11.1.4  ADO.NET的对象	253
11.2  数据源控件	268
11.2.1  SqlDataSource数据源控件	269
11.2.2  AccessDataSource数据源控件	273
11.2.3  SiteMapDataSource数据源控件	273
11.3  开发学生上机签到系统	273
11.3.1  数据库应用系统开发过程概述	273
11.3.2  设计学生上机签到系统	274
习题11	283
第12章  关系规范化与数据库设计	285
12.1  关系数据库规范化理论简介	285
12.1.1  函数依赖	285
12.1.2  关系规范化	287
12.2  关系数据库的设计	289
12.2.1  数据库设计概述	289
12.2.2  概念设计	290
12.2.3  逻辑设计	291
12.2.4  物理设计	293
习题12	293
附录A  上机练习	295
参考文献	305