第一章 数据库概述 1
1.1 数据库简介 1
1.1.1 数据管理技术的发展过程 1
1.1.2 数据库系统相关概念 2
1.1.3 什么是SQL语言 4
1.1.4 如何访问数据库 5
1.2 MySQL简介 6
1.2.1 数据库的分类 6
1.2.2 常见关系型数据库 7
1.2.3 MySQL的优势 8
本章小结 9
练习题 9
第二章 MySQL的安装与配置 10
2.1 下载MySQL 10
2.1.1 在Windows平台下载MySQL 11
2.1.2 在Linux平台下载MySQL 13
2.2 在Windows平台下安装与配置MySQL 13
2.2.1 MSI版MySQL的安装与配置 13
2.2.2 ZIP版MySQL的解压与配置 19
2.3 在Linux平台下安装与配置MySQL 22
2.3.1 安装MySQL 22
2.3.2 配置MySQL 23
2.4 MySQL的常用操作 25
2.4.1 启动与关闭MySQL服务 25
2.4.2 登录与退出MySQL数据库 27
2.4.3 修改MySQL配置 30
2.5 MySQL常用图形化管理工具——Navicat 32
2.5.1 下载Navicat 32
2.5.2 安装Navicat 33
2.5.3 通过Navicat登录MySQL数据库 36
本章小结 37
练习题 37
第三章 MySQL支持的数据类型 38
3.1 数值类型 39
3.1.1 整数类型 39
3.1.2 浮点数和定点数类型 41
3.1.3 BIT类型 42
3.2 日期和时间类型 43
3.2.1 TIME类型 44
3.2.2 DATE类型 45
3.2.3 YEAR类型 46
3.2.4 DATETIME类型 46
3.2.5 TIMESTAMP类型 47
3.3 字符串类型 48
3.3.1 CHAR类型和VARCHAR类型 48
3.3.2 BINARY类型和VARBINARY类型 49
3.3.3 TEXT类型和BLOB类型 50
3.3.4 ENUM类型 50
3.3.5 SET类型 51
3.4 JSON类型 51
本章小结 52
练习题 52
第四章 数据库的基本操作 53
4.1 创建数据库 53
4.1.1 使用SQL语句创建数据库 53
4.1.2 使用图形界面创建数据库 54
4.2 查看数据库 55
4.2.1 使用SQL语句查看数据库 55
4.2.2 使用图形界面查看数据库 56
4.3 修改数据库 57
4.3.1 使用SQL语句修改数据库 57
4.3.2 使用图形界面修改数据库 58
4.4 删除数据库 58
4.4.1 使用SQL语句删除数据库 59
4.4.2 使用图形界面删除数据库 59
本章小结 60
练习题 60
第五章 表的基本操作 61
5.1 创建表 61
5.1.1 使用SQL语句创建表 62
5.1.2 使用图形界面创建表 63
5.2 查看表 65
5.2.1 查看表的基本结构 65
5.2.2 查看表的详细结构 66
5.3 修改表 66
5.3.1 修改表名 67
5.3.2 修改字段的数据类型 68
5.3.3 修改字段名 70
5.3.4 增加字段 71
5.3.5 修改字段的排列位置 74
5.3.6 删除字段 75
5.4 删除表 76
5.4.1 使用SQL语句删除表 76
5.4.2 使用图形界面删除表 77
5.5 表的约束 78
5.5.1 完整性约束 78
5.5.2 主键约束 78
5.5.3 唯一约束 84
5.5.4 非空约束 89
5.5.5 默认值约束 92
5.5.6 自增约束 95
5.5.7 外键约束 98
本章小结 103
练习题 103
第六章 索引 104
6.1 索引简介 104
6.1.1 索引的概念 104
6.1.2 使用索引的原因 104
6.1.3 索引的分类 105
6.2 创建索引 106
6.2.1 在创建表时创建索引 108
6.2.2 为已存在的表创建索引 114
6.3 删除索引 121
6.3.1 使用“alter table”语句删除索引 122
6.3.2 使用“drop index”语句删除索引 122
6.4 使用图形界面操作索引 123
本章小结 125
练习题 125
第七章 插入、更新与删除数据 126
7.1 插入数据 126
7.1.1 为所有字段插入数据 126
7.1.2 为指定字段插入数据 128
7.1.3 使用“set”关键字为字段插入数据 129
7.1.4 同时插入多条数据 131
7.1.5 插入查询结果 133
7.2 更新数据 135
7.2.1 更新指定记录 135
7.2.2 更新全部记录 136
7.3 删除数据 137
7.3.1 删除指定记录 137
7.3.2 删除全部记录 138
7.3.3 使用“truncate”语句删除数据 139
7.4 使用图形界面操作数据 142
本章小结 143
练习题 143
第八章 单表查询操作 145
8.1 简单查询 147
8.1.1 所有字段的查询 147
8.1.2 指定字段的查询 149
8.1.3 去除重复记录的查询 150
8.1.4 使用算术运算符的查询 152
8.1.5 使用字段别名的查询 153
8.1.6 设置数据显示格式的查询 154
8.2 对查询结果排序 155
8.2.1 按照指定的单字段排序 155
8.2.2 按照指定的多字段排序 156
8.3 条件查询 158
8.3.1 使用比较运算符的查询 158
8.3.2 使用“[not] between...and...”的范围查询 160
8.3.3 使用“[not] in”的指定集合查询 161
8.3.4 使用“is[not] null”的空值查询 163
8.3.5 使用“[not] like”的模糊查询 164
8.3.6 使用“and”的多条件查询 167
8.3.7 使用“or”的多条件查询 168
8.4 限制查询 168
8.4.1 不指定初始位置的限制查询 169
8.4.2 指定初始位置的限制查询 169
8.5 函数查询 170
8.5.1 使用单行函数的查询 170
8.5.2 使用多行函数的查询 183
8.6 分组查询 186
8.6.1 使用“group by”的简单分组查询 186
8.6.2 使用“group by”与统计函数的分组查询 187
8.6.3 使用“group by”与“having”的分组查询 189
本章小结 190
练习题 190
第九章 多表查询操作 191
9.1 交叉连接查询 193
9.2 自然连接查询 195
9.3 内连接查询 196
9.3.1 等值连接查询 196
9.3.2 非等值连接查询 198
9.4 外连接查询 199
9.4.1 左外连接查询 200
9.4.2 右外连接查询 201
9.5 子查询 202
9.5.1 标量子查询 202
9.5.2 行子查询 203
9.5.3 列子查询 203
9.5.4 表子查询 207
9.5.5 使用子查询的注意事项 208
9.6 多表查询练习 209
本章小结 215
练习题 215
第十章 事务 217
10.1 事务简介 217
10.1.1 事务的概念 217
10.1.2 事务的特性 217
10.2 事务控制 218
10.2.1 事务的开启 219
10.2.2 事务的提交 222
10.2.3 事务的回滚 223
10.3 事务的隔离级别 224
10.3.1 “read uncommitted”隔离级别 224
10.3.2 “read committed”隔离级别 226
10.3.3 “repeatable read”隔离级别 229
10.3.4 “serializable”隔离级别 236
本章小结 239
练习题 239
第十一章 视图 240
11.1 视图简介 240
11.1.1 视图的概念 240
11.1.2 使用视图的原因 240
11.2 创建视图 241
11.2.1 在单表上创建视图 242
11.2.2 在多表上创建视图 244
11.2.3 在其他视图上创建视图 245
11.3 查看视图 246
11.3.1 使用“show tables”语句查看视图 246
11.3.2 使用“show table status”语句查看视图 246
11.3.3 使用“describe”语句查看视图 247
11.3.4 使用“show create view”语句查看视图 248
11.3.5 在views表中查看视图 249
11.4 修改视图 250
11.4.1 使用“create or replace”语句修改视图 250
11.4.2 使用“alter view”语句修改视图 251
11.5 删除视图 252
11.6 更新视图 253
11.6.1 使用“insert”语句更新视图 253
11.6.2 使用“delete”语句更新视图 254
11.6.3 使用“update”语句更新视图 256
11.6.4 更新视图时的限制条件 257
本章小结 262
练习题 262
第十二章 用户管理 263
12.1 权限表 263
12.1.1 mysql.user表 263
12.1.2 mysql.db表 265
12.1.3 其他权限表 266
12.2 用户管理 266
12.2.1 用户登录与退出MySQL数据库 267
12.2.2 创建普通用户 269
12.2.3 删除普通用户 271
12.2.4 修改密码 273
12.2.5 找回密码 278
12.3 权限管理 281
12.3.1 各种权限介绍 281
12.3.2 查看权限 283
12.3.3 授予权限 283
12.3.4 收回权限 285
本章小结 286
练习题 287
第十三章 存储过程 288
13.1 存储过程简介 288
13.1.1 存储过程的概念 288
13.1.2 存储过程的好处 288
13.2 使用存储过程 289
13.2.1 创建存储过程 289
13.2.2 执行存储过程 291
13.2.3 创建存储过程的要点 292
13.2.4 删除存储过程 304
本章小结 304
练习题 304
第十四章 游标 305
14.1 游标简介 305
14.2 使用游标 305
本章小结 308
练习题 308
第十五章 存储函数 309
15.1 定义存储函数 309
15.2 删除存储函数 311
本章小结 312
练习题 312
第十六章 触发器 313
16.1 创建触发器 313
16.2 删除触发器 314
16.3 使用触发器 314
16.3.1 insert型触发器 314
16.3.2 update型触发器 316
16.3.3 delete型触发器 317
本章小结 319
练习题 320
第十七章 数据备份与恢复 321
17.1 需要备份数据的原因 321
17.2 数据的备份类型 321
17.3 备份数据 322
17.4 恢复数据 323
本章小结 325
练习题 325
第十八章 关系型数据库设计 326
18.1 设计关系型数据库 326
18.1.1 数据模型 326
18.1.2 概念模型 327
18.1.3 设计数据库的步骤 328
18.1.4 关系型数据库的设计原则 328
18.2 三大范式 328
18.2.1 第一范式(1NF) 329
18.2.2 第二范式(2NF) 329
18.2.3 第三范式(3NF) 331
本章小结 333
练习题 333
参考文献 334