章数据库概述1
1.1数据库的基本概念1
1.1.1信息与数据库1
1.1.2数据库管理系统2
1.1.3数据库系统2
1.2数据管理技术的发展阶段3
1.2.1人工管理阶段3
1.2.2文件系统阶段3
1.2.3数据库系统阶段4
1.3数据库的体系结构5
1.4数据模型6
1.4.1概念模型与E-R方法6
1.4.2数据模型的分类8
1.4.3关系数据模型10
1.4.4关系的完整性规则11
1.5关系运算12
1.5.1传统的集合运算12
1.5.2专门的关系运算13
1.6小结15
实训116
习题116
第2章数据库设计18
2.1关系数据库的规范化18
2.1.1关系数据库的规范化理论18
2.1.2范式(1NF)19
2.1.3第二范式(2NF)20
2.1.4第三范式(3NF)20
2.2数据库设计步骤21
2.2.1数据库设计概述22
2.2.2需求分析22
2.2.3概念结构设计22
2.2.4逻辑结构设计23
2.2.5数据库物理设计24
2.2.6数据库的实施、运行与维护25
2.2.7数据库设计案例26
2.3小结29
实训229
习题230
第3章MySQL数据库34
3.1MySQL数据库概述34
3.1.1MySQL数据库的发展历史34
3.1.2MySQL8.0版本的新特性35
3.2MySQL数据库的安装与配置36
3.2.1MySQL数据库的安装37
3.2.2MySQL数据库的配置39
3.2.3配置path变量44
3.3MySQL数据库的使用45
3.3.1MySQL服务的启动和关闭45
3.3.2登录MySQL数据库服务器46
3.3.3MySQL数据库的相关命令47
3.4MySQL数据库的图形化管理工具51
3.5小结52
实训353
习题353
第4章MySQL数据库的基本操作55
4.1创建数据库55
4.1.1MySQL数据库的构成55
4.1.2创建数据库55
4.2管理数据库56
4.2.1查看数据库56
4.2.2选择数据库56
4.2.3修改数据库56
4.2.4删除数据库57
4.3利用MySQLWorkbench管理数据库57
4.3.1利用MySQLWorkbench创建数据库58
4.3.2利用MySQLWorkbench删除数据库58
4.3.3利用MySQLWorkbench管理数据库59
4.4MySQL存储引擎59
4.4.1查看存储引擎60
4.4.2常用存储引擎介绍61
4.4.3如何选择存储引擎62
4.5小结63
实训463
习题464
第5章MySQL数据库表65
5.1MySQL数据库表的管理65
5.1.1MySQL数据类型65
5.1.2创建数据库表67
5.1.3查看表69
5.1.4修改数据库表70
5.1.5删除表72
5.2表的数据操作72
5.2.1表记录的插入72
5.2.2表记录的修改75
5.2.3表记录的删除76
5.3利用MySQLWorkbench管理数据表76
5.3.1数据表的创建、查看、修改和删除76
5.3.2编辑数据79
5.4小结80
实训580
习题582
第6章表的数据完整性83
6.1主键约束83
6.1.1创建表时创建主键83
6.1.2为已存在的表添加主键84
6.1.3删除主键约束85
6.2外键约束85
6.2.1创建表时创建外键86
6.2.2为已存在的表添加外键87
6.2.3删除外键约束87
6.3唯一性约束88
6.3.1创建表时创建唯一性约束88
6.3.2为已存在的表添加唯一性约束89
6.3.3删除唯一性约束89
6.4非空约束90
6.4.1创建表时添加非空约束90
6.4.2为已存在的表添加非空约束90
6.4.3删除非空约束91
6.5检查约束91
6.5.1创建表时添加检查约束91
6.5.2为已存在的表添加检查约束92
6.5.3删除检查约束92
6.6默认值约束93
6.6.1创建表时添加默认值约束93
6.6.2为已存在的表添加默认值约束94
6.6.3删除默认值约束94
6.7使用MySQLWorkbench管理数据完整性约束95
6.7.1创建和删除主键约束95
6.7.2创建和删除外键约束96
6.7.3创建和删除检查约束97
6.8小结98
实训698
习题699
第7章数据查询101
7.1基本查询语句101
7.2单表查询102
7.2.1查询所有字段数据102
7.2.2查询指定字段数据102
7.2.3去掉重复记录102
7.2.4表达式查询103
7.2.5设置别名103
7.2.6查询指定记录104
7.2.7带IN关键字的查询105
7.2.8带BETWEENAND关键字的查询105
7.2.9带LIKE的模糊查询106
7.2.10带ISNULL空值查询107
7.2.11带AND|OR的多条件查询107
7.2.12聚合函数查询108
7.2.13GROUPBY分组查询109
7.2.14ORDERBY排序查询111
7.2.15LIMIT限制结果集返回的行数112
7.3多表查询113
7.3.1内连接113
7.3.2外连接114
7.3.3交叉连接115
7.3.4自连接115
7.4子查询115
7.4.1比较子查询116
7.4.2带IN关键字的子查询116
7.4.3批量比较子查询116
7.4.4EXISTS子查询117
7.4.5利用子查询插入、更新与删除数据118
7.5使用正则表达式进行模糊查询119
7.6合并结果集121
7.7小结121
实训7-1121
实训7-2123
习题7125
第8章索引和视图127
8.1索引127
8.1.1索引概述127
8.1.2创建索引128
8.1.3查看索引131
8.1.4删除索引131
8.1.5利用MySQLWorkbench管理索引132
8.2视图135
8.2.1创建视图135
8.2.2查看视图136
8.2.3修改视图138
8.2.4查询视图139
8.2.5更新视图139
8.2.6删除视图141
8.2.7利用MySQLWorkbench创建和管理视图141
8.3小结142
实训8143
习题8144
第9章MySQL编程基础146
9.1常量和变量146
9.1.1常量146
9.1.2变量147
9.2运算符与表达式149
9.2.1算术运算符149
9.2.2比较运算符150
9.2.3逻辑运算符151
9.2.4位运算符152
9.2.5运算符与优先级153
9.2.6表达式154
9.3流程控制语句154
9.3.1IF语句154
9.3.2CASE语句155
9.3.3LOOP语句和LEAVE语句156
9.3.4REPEAT语句156
9.3.5WHILE语句157
9.3.6ITERATE语句158
9.4函数158
9.4.1系统内置函数159
9.4.2自定义函数165
9.5小结166
实训9-1167
实训9-2167
习题9168
0章存储过程和触发器170
10.1存储过程170
10.1.1存储过程的基本概念170
10.1.2存储过程的创建和调用171
10.1.3使用图形化工具创建存储过程172
10.1.4查看存储过程173
10.1.5修改存储过程175
10.1.6删除存储过程175
10.1.7存储过程与函数的联系与区别176
10.1.8利用MySQLWorkbench管理存储过程176
10.2游标177
10.3触发器178
10.3.1认识触发器178
10.3.2创建触发器179
10.3.3查看触发器182
10.3.4删除触发器184
10.3.5利用MySQLWorkbench管理触发器184
10.4事件185
10.4.1事件概述185
10.4.2创建事件185
10.4.3事件的管理187
10.5小结188
实训10-1188
实训10-2189
习题10189
1章事务与锁191
11.1事务概述191
11.1.1事务的概念191
11.1.2事务的特性192
11.2事务的管理193
11.2.1开始事务193
11.2.2事务的提交193
11.2.3事务的回滚193
11.3事务的隔离级别194
11.3.1MySQL的4种隔离级别194
11.3.2查看隔离级别196
11.3.3修改隔离级别196
11.4锁机制197
11.4.1锁的分类198
11.4.2锁的管理198
11.5小结201
实训11202
习题11203
2章备份与恢复205
12.1表数据的导入与导出205
12.1.1用select…intooutfile命令导出数据206
12.1.2用mysqldump命令导出数据207
12.1.3用mysql命令导出数据208
12.1.4用loaddatainfile命令导入文本文件209
12.2使用mysqldump命令备份数据209
12.2.1备份一个数据库中的表210
12.2.2备份多个数据库211
12.2.3备份所有的数据库212
12.3数据恢复212
12.3.1使用source命令恢复表和数据库212
12.3.2使用mysql命令还原213
12.4使用MySQLWorkbench工具导入和导出数据库214
12.4.1使用MySQLWorkbench导出数据214
12.4.2使用MySQLWorkbench导入数据216
12.5日志文件217
12.5.1日志分类217
12.5.2二进制日志文件的使用218
12.5.3错误日志221
12.5.4通用查询日志222
12.5.5慢查询日志222
12.6小结223
实训12224
习题12225
3章用户和权限管理227
13.1用户与权限227
13.1.1user表227
13.1.2db表229
13.1.3tables_priv表和columns_priv表229
13.1.4procs_priv表230
13.1.5访问控制过程230
13.2用户管理231
13.2.1添加普通用户231
13.2.2普通用户修改自己的密码234
13.2.3root用户修改自己的密码和普通用户的密码235
13.2.4修改用户名237
13.2.5删除普通用户237
13.2.6MySQL8中root用户密码丢失的解决办法238
13.3权限管理239
13.3.1MySQL的各种权限239
13.3.2授予权限和查看权限241
13.3.3收回权限244
13.4MySQL8.0的新特性(角色管理)246
13.4.1创建角色246
13.4.2授予及查看角色权限246
13.4.3激活角色247
13.4.4收回角色或角色权限249
13.4.5删除角色249
13.4.6角色和用户互换249
13.5小结250
实训13250
习题13251
4章使用PHP操作MySQL数据库252
14.1初识PHP252
14.1.1PHP的特点252
14.1.2PHP程序的工作原理252
14.2PHP开发环境的搭建253
14.2.1安装WampServer集成软件253
14.2.2创建PHP项目254
14.3PHP访问MySQL数据库的一般步骤256
14.4PHP访问MySQL数据库256
14.4.1连接MySQL服务器256
14.4.2选择修改默认的数据库257
14.4.3执行SQL语句257
14.4.4获取查询结果集中的记录数258
14.4.5将结果集返回数组中258
14.4.6从结果集中获取一条记录作为枚举数组259
14.4.7从结果集中获取一条记录作为关联数组259
14.4.8从结果集中获取一条记录作为对象260
14.4.9释放内存260
14.4.10关闭MySQL连接260
14.5综合实例260
14.6小结267
实训14267
习题14268
5章成绩管理系统数据库设计269
15.1需求分析269
15.2系统功能269
15.3数据库概念设计269
15.3.1确定实体及联系270
15.3.2各实体E-R图270
15.3.3总体E-R图271
15.4数据库的逻辑结构设计与物理结构设计271
15.4.1关系模式及表设计271
15.4.2设计索引274
15.4.3设计视图275
15.4.4设计触发器275
15.5小结276
实训15276
习题15277
参考文献278