第1章 数据库设计概述 1
1.1数据库概述 2
1.1.1数据库与数据库管理系统 2
1.1.2数据模型 3
1.1.3结构化查询语言SQL 3
1.2数据库的体系结构 3
1.2.1数据库三级模式结构 3
1.2.2三级模式之间的映射 4
1.3 E-R图 4
1.3.1实体和属性 4
1.3.2关系 5
1.3.3 E-R图的设计原则 5
1.4数据库设计 6
1.4.1为实体建立数据表 6
1.4.2为表建立主键或外键 7
1.4.3为字段选择合适的数据类型 7
1.4.4定义约束条件 8
小结 8
习题 8
第2章 MySQL概述 9
2.1为什么选择MySQL数据库 10
2.1.1什么是MySQL数据库 10
2.1.2 MySQL的优势 10
2.1.3 MySQL的发展史 10
2.2 MySQL特性 10
2.3 MySQL服务器的安装与配置 11
2.3.1下载MySQL 11
2.3.2 MySQL环境的安装 13
2.3.3启动、连接、断开和停止MySQL服务器 20
小结 23
上机指导 24
习题 25
第3章 MySQL数据库管理 26
3.1创建数据库 27
3.1.1通过CREATE DATABASE语句创建数据库 27
3.1.2通过CREATE SCHEMA语句创建数据库 27
3.1.3创建指定字符集的数据库 28
3.1.4创建数据库前判断是否存在同名数据库 28
3.2查看数据库 29
3.3选择数据库 29
3.4修改数据库 30
3.5删除数据库 31
3.6数据库存储引擎的应用 31
3.6.1查询MySQL中支持的存储引擎 31
3.6.2 InnoDB存储引擎 33
3.6.3 MyISAM存储引擎 34
3.6.4 MEMORY存储引擎 34
3.6.5如何选择存储引擎 35
小结 36
上机指导 36
习题 37
第4章 MySQL表结构管理 38
4.1 MySQL数据类型 39
4.1.1数字类型 39
4.1.2字符串类型 40
4.1.3日期和时间数据类型 41
4.2创建表 41
4.2.1设置默认的存储引擎 43
4.2.2设置自增类型字段 44
4.2.3设置字符集 45
4.2.4复制表结构 45
4.3修改表结构 48
4.3.1修改字段 48
4.3.2修改约束条件 49
4.3.3修改表的其他选项 50
4.3.4修改表名 50
4.4删除表 51
4.5设置索引 51
4.5.1索引概述 51
4.5.2创建索引 52
4.5.3删除索引 55
4.6定义约束 56
4.6.1定义主键约束 56
4.6.2定义候选键约束 57
4.6.3定义非空约束 58
4.6.4定义CHECK约束 58
小结 60
上机指导 60
习题 61
第5章 表记录的更新操作 62
5.1插入表记录 63
5.1.1使用INSERT…VALUES语句插入新记录 63
5.1.2插入多条记录 65
5.1.3使用INSERT…SELECT语句插入结果集 66
5.1.4使用REPLACE语句插入新记录 68
5.2修改表记录 69
5.3删除表记录 70
5.3.1使用DELETE语句删除表记录 70
5.3.2使用TRUNCATE语句清空表记录 71
小结 71
上机指导 72
习题 72
第6章 表记录的检索 73
6.1基本查询语句 74
6.2单表查询 75
6.2.1查询所有字段 76
6.2.2查询指定字段 76
6.2.3查询指定数据 76
6.2.4带IN关键字的查询 77
6.2.5带BETWEEN AND的范围查询 78
6.2.6带LIKE的字符匹配查询 78
6.2.7用IS NULL关键字查询空值 79
6.2.8带AND的多条件查询 79
6.2.9带OR的多条件查询 80
6.2.10用DISTINCT关键字去除结果中的重复行 80
6.2.11用ORDER BY关键字对查询结果排序 81
6.2.12用GROUP BY关键字分组查询 81
6.2.13用LIMIT限制查询结果的数量 83
6.3聚合函数查询 83
6.3.1 COUNT()函数 83
6.3.2 SUM()函数 84
6.3.3 AVG()函数 84
6.3.4 MAX()函数 85
6.3.5 MIN()函数 86
6.4连接查询 86
6.4.1内连接查询 86
6.4.2外连接查询 88
6.4.3复合条件连接查询 89
6.5子查询 90
6.5.1带IN关键字的子查询 90
6.5.2带比较运算符的子查询 91
6.5.3带EXISTS关键字的子查询 92
6.5.4带ANY关键字的子查询 93
6.5.5带ALL关键字的子查询 94
6.6合并查询结果 95
6.7定义表和字段的别名 96
6.7.1为表取别名 96
6.7.2为字段取别名 96
6.8使用正则表达式查询 97
6.8.1匹配指定字符中的任意一个 98
6.8.2使用“*”和“+”来匹配多个字符 99
小结 100
上机指导 100
习题 101
第7章 视图 102
7.1视图概述 103
7.1.1视图的概念 103
7.1.2视图的作用 103
7.2创建视图 104
7.2.1查看创建视图的权限 104
7.2.2创建视图 104
7.2.3创建视图的注意事项 106
7.3视图操作 106
7.3.1查看视图 106
7.3.2修改视图 108
7.3.3更新视图 110
7.3.4删除视图 112
小结 113
上机指导 113
习题 114
第8章 触发器 115
8.1 MySQL触发器 116
8.1.1创建MySQL触发器 116
8.1.2创建具有多个执行语句的触发器 117
8.2查看触发器 119
8.2.1 SHOW TRIGGERS 119
8.2.2查看triggers表中的触发器信息 120
8.3使用触发器 120
8.3.1触发器的执行顺序 121
8.3.2使用触发器维护冗余数据 122
8.4删除触发器 123
小结 124
上机指导 124
习题 125
第9章 存储过程与存储函数 126
9.1创建存储过程与存储函数 127
9.1.1创建存储过程 127
9.1.2创建存储函数 129
9.1.3变量的应用 130
9.1.4光标的运用 133
9.2存储过程和存储函数的调用 134
9.2.1调用存储过程 134
9.2.2调用存储函数 135
9.3查看存储过程和函数 136
9.3.1 SHOW STATUS语句 136
9.3.2 SHOW CREATE语句 136
9.4修改存储过程和函数 137
9.5删除存储过程和函数 138
小结 138
上机指导 139
习题 140
第10章 备份与恢复 141
10.1数据备份 142
10.1.1使用mysqldump命令备份 142
10.1.2直接复制整个数据库目录 145
10.1.3使用mysqlhotcopy工具快速备份 145
10.2数据恢复 146
10.2.1使用mysql命令还原 146
10.2.2直接复制到数据库目录 147
10.3数据库迁移 147
10.3.1 MySQL数据库之间的迁移 147
10.3.2不同数据库之间的迁移 148
10.4表的导出和导入 148
10.4.1用SELECT…INTO OUTFILE导出文本文件 148
10.4.2用mysqldump命令导出文本文件 150
10.4.3用mysql命令导出文本文件 152
小结 153
上机指导 153
习题 155
第11章 MySQL性能优化 156
11.1优化概述 157
11.1.1分析MySQL数据库的性能 157
11.1.2通过profile工具分析语句消耗的性能 157
11.2优化查询 158
11.2.1分析查询语句 159
11.2.2索引对查询速度的影响 160
11.2.3使用索引查询 161
11.3优化数据库结构 162
11.3.1将字段很多的表分解成多个表 163
11.3.2增加中间表 163
11.3.3优化插入记录的速度 164
11.3.4分析表、检查表和优化表 165
11.4优化多表查询 166
11.5优化表设计 167
小结 168
上机指导 168
习题 169
第12章 事务与锁机制 170
12.1事务机制 171
12.1.1事务的概念 171
12.1.2事务机制的必要性 171
12.1.3关闭MySQL自动提交 173
12.1.4事务回滚 174
12.1.5事务提交 175
12.1.6 MySQL中的事务 176
12.1.7回退点 178
12.2锁机制 179
12.2.1 MySQL锁机制的基本知识 180
12.2.2 MyISAM表的表级锁 181
12.2.3 InnoDB表的行级锁 184
12.2.4死锁的概念与避免 186
12.3事务的隔离级别 186
12.3.1事务的隔离级别与并发问题 186
12.3.2设置事务的隔离级别 187
小结 187
上机指导 188
习题 190
第13章 综合开发案例——图书馆管理系统 191
13.1开发背景 192
13.2系统分析 192
13.2.1需求分析 192
13.2.2可行性研究 192
13.3 JSP预备知识 193
13.3.1 JSP概述 193
13.3.2 JSP的开发及运行环境 194
13.3.3 JSP页面的基本构成 195
13.4系统设计 195
13.4.1系统目标 195
13.4.2系统功能结构 196
13.4.3系统流程图 196
13.4.4开发环境 197
13.4.5文件夹组织结构 197
13.5系统预览 197
13.6数据库设计 199
13.6.1实体图设计 199
13.6.2 E-R图设计 201
13.6.3数据库逻辑结构设计 201
13.7公共模块设计 204
13.7.1数据库连接及操作类的编写 205
13.7.2字符串处理类的编写 207
13.7.3配置解决中文乱码的过滤器 207
13.8主界面设计 208
13.8.1主界面概述 208
13.8.2主界面的实现过程 209
13.9管理员模块设计 210
13.9.1管理员模块概述 210
13.9.2编写管理员模块的实体类和Servlet控制类 210
13.9.3系统登录的实现过程 212
13.9.4查看管理员的实现过程 215
13.9.5添加管理员的实现过程 218
13.9.6设置管理员权限的实现过程 221
13.9.7删除管理员的实现过程 224
13.10图书借还模块设计 225
13.10.1图书借还模块概述 225
13.10.2编写图书借还模块的实体类和Servlet控制类 226
13.10.3图书借阅的实现过程 227
13.10.4图书续借的实现过程 231
13.10.5图书归还的实现过程 234
13.10.6图书借阅查询的实现过程 235
小结 239
附录 实验 240
实验1:安装MySQL数据库 241
实验2:创建数据库并指定使用的字符集 241
实验3:创建和修改数据表 243
实验4:使用SQL语句插入和更新记录 244
实验5:为表创建索引 246
实验6:创建并使用约束 247
实验7:模糊查询数据 249
实验8:查询和汇总数据库的数据 250
实验9:创建视图 251
实验10:创建触发器 252
实验11:创建和使用存储过程 254
实验12:备份和恢复数据库 255