目 录
第1篇 基 础 知 识
第1章 数据库基础 2
视频讲解:23分钟
1.1 数据库系统概述 2
1.1.1 数据库技术的发展 2
1.1.2 数据库系统的组成 3
1.2 数据模型 3
1.2.1 数据模型的概念 3
1.2.2 常见的数据模型 4
1.2.3 关系数据库的规范化 5
1.2.4 关系数据库的设计原则 7
1.2.5 实体与关系 7
1.3 数据库的体系结构 8
1.3.1 数据库三级模式结构 8
1.3.2 三级模式之间的映射 8
1.4 小结 9
1.5 实践与练习 9
第2章 初识MySQL 10
视频讲解:22分钟
2.1 了解MySQL 10
2.1.1 MySQL数据库的概念 11
2.1.2 MySQL的优势 11
2.1.3 MySQL的发展史 11
2.2 MySQL 8.0的新特性 11
2.3 MySQL的应用环境 13
2.4 MySQL服务器的安装和配置 13
2.4.1 MySQL服务器安装包的下载 13
2.4.2 MySQL服务器的安装 16
2.4.3 启动、连接、断开和停止MySQL
服务器 27
2.4.4 打开MySQL 8.0 Command Line Client 31
2.5 如何学好MySQL 32
2.6 小结 32
2.7 实践与练习 32
第3章 使用MySQL图形化管理工具 33
视频讲解:23分钟
3.1 安装phpMyAdmin图形化管理工具 33
3.1.1 phpMyAdmin图形化管理工具简介 33
3.1.2 下载phpstudy集成开发环境 34
3.1.3 下载phpMyAdmin 34
3.1.4 打开phpMyAdmin 34
3.2 数据库操作管理 35
3.2.1 创建数据库 35
3.2.2 修改和删除数据库 36
3.3 管理数据表 37
3.3.1 创建数据表 37
3.3.2 修改数据表 38
3.3.3 删除数据表 38
3.4 管理数据记录 39
3.4.1 使用SQL语句插入数据 39
3.4.2 使用SQL语句修改数据 40
3.4.3 使用SQL语句查询数据 40
3.4.4 使用SQL语句删除数据 41
3.4.5 通过form表单插入数据 42
3.4.6 浏览数据 43
3.4.7 搜索数据 43
3.5 导入/导出数据 44
3.5.1 导出MySQL数据库脚本 44
3.5.2 导入MySQL数据库脚本 45
3.6 设置编码格式 46
3.7 添加服务器新用户 48
3.8 重置MySQL服务器登录密码 49
3.9 小结 51
3.10 实践与练习 51
第4章 数据库操作 52
视频讲解:28分钟
4.1 认识数据库 52
4.1.1 数据库基本概念 52
4.1.2 数据库常用对象 54
4.1.3 系统数据库 54
4.2 创建数据库 55
4.2.1 使用CREATE DATABASE语句
创建数据库 56
4.2.2 使用CREATE SCHEMA语句
创建数据库 56
4.2.3 创建指定字符集的数据库 57
4.2.4 创建数据库前判断是否存在同名数据库 58
4.3 查看数据库(SHOW命令) 58
4.4 选择数据库(USE命令) 59
4.5 修改数据库(ALTER命令) 60
4.6 删除数据库(DROP命令) 61
4.7 小结 63
4.8 实践与练习 63
第5章 存储引擎及数据类型 64
视频讲解:18分钟
5.1 MySQL存储引擎 64
5.1.1 MySQL存储引擎的概念 65
5.1.2 查询MySQL中支持的存储引擎 65
5.1.3 InnoDB存储引擎 67
5.1.4 MyISAM存储引擎 68
5.1.5 MEMORY存储引擎 68
5.1.6 选择存储引擎 70
5.1.7 设置数据表的存储引擎 70
5.2 MySQL数据类型 71
5.2.1 数字类型 71
5.2.2 字符串类型 72
5.2.3 日期和时间类型 74
5.3 小结 74
5.4 实践与练习 74
第6章 数据表操作 75
视频讲解:38分钟
6.1 创建数据表
(CREATE TABLE语句) 75
6.2 查看表结构 77
6.2.1 使用SHOW COLUMNS语句查看 77
6.2.2 使用DESCRIBE语句查看 78
6.3 修改表结构
(ALTER TABLE语句) 78
6.3.1 添加新字段和修改字段定义 79
6.3.2 修改字段名/类型 80
6.3.3 删除字段 81
6.3.4 修改表名 81
6.4 重命名表
(RENAME TABLE语句) 82
6.5 复制表
(CREATE TABLE…LIKE语句) 83
6.6 删除表(DROP TABLE语句) 85
6.7 小结 86
6.8 实践与练习 86
第2篇 核 心 技 术
第7章 MySQL基础 88
视频讲解:37分钟
7.1 运算符 88
7.1.1 算术运算符 88
7.1.2 比较运算符 89
7.1.3 逻辑运算符 93
7.1.4 位运算符 95
7.1.5 运算符的优先级 95
7.2 流程控制语句 96
7.2.1 IF语句 96
7.2.2 CASE语句 97
7.2.3 WHILE循环语句 98
7.2.4 LOOP循环语句 99
7.2.5 REPEAT循环语句 100
7.3 小结 101
7.4 实践与练习 101
第8章 表数据的增、删、改操作 102
视频讲解:31分钟
8.1 增添数据 102
8.1.1 使用INSERT…VALUES语句插入
数据 102
8.1.2 使用INSERT…SET语句插入数据 106
8.1.3 使用INSERT...SELECT语句插入
查询结果 107
8.2 修改数据 109
8.3 删除数据 110
8.3.1 使用DELETE语句删除数据 110
8.3.2 使用TRUNCATE TABLE语句
删除数据 111
8.4 小结 112
8.5 实践与练习 112
第9章 数据查询 113
视频讲解:75分钟
9.1 基本查询语句 113
9.2 单表查询 115
9.2.1 查询所有字段 115
9.2.2 查询指定字段 116
9.2.3 查询指定数据 116
9.2.4 带关键字IN的查询 117
9.2.5 带关键字BETWEEN AND的范围查询 117
9.2.6 带LIKE的字符匹配查询 118
9.2.7 用IS NULL关键字查询空值 119
9.2.8 带AND的多条件查询 119
9.2.9 带OR的多条件查询 120
9.2.10 用DISTINCT关键字去除结果中的
重复行 120
9.2.11 用ORDER BY关键字对查询结果
进行排序 121
9.2.12 用GROUP BY关键字分组查询 121
9.2.13 用LIMIT限制查询结果的数量 123
9.3 聚合函数查询 124
9.3.1 COUNT()统计函数 124
9.3.2 SUM()求和函数 124
9.3.3 AVG()平均数函数 125
9.3.4 MAX()最大值函数 125
9.3.5 MIN()最小值函数 125
9.4 连接查询 126
9.4.1 内连接查询 126
9.4.2 外连接查询 127
9.4.3 复合条件连接查询 129
9.5 子查询 129
9.5.1 带IN关键字的子查询 130
9.5.2 带比较运算符的子查询 131
9.5.3 带EXISTS关键字的子查询 131
9.5.4 带ANY关键字的子查询 132
9.5.5 带ALL关键字的子查询 132
9.6 合并查询结果 133
9.7 定义表和字段的别名 134
9.7.1 为表取别名 134
9.7.2 为字段取别名 135
9.8 使用正则表达式查询 135
9.8.1 匹配指定字符中的任意一个 136
9.8.2 使用“*”和“+”来匹配多个字符 137
9.8.3 匹配以指定的字符开头和结束的记录 137
9.9 小结 138
9.10 实践与练习 138
第10章 常用函数 139
视频讲解:34分钟
10.1 MySQL函数 139
10.2 数学函数 140
10.2.1 ABS(x)绝对值函数 141
10.2.2 FLOOR(x)向下取整函数 142
10.2.3 RAND()随机数函数 142
10.2.4 PI()圆周率函数 143
10.2.5 TRUNCATE(x,y)截断函数 143
10.2.6 ROUND(x)近似值函数和
ROUND(x,y)四舍五入函数 143
10.2.7 SQRT(x)平方函数 144
10.3 字符串函数 144
10.3.1 INSERT(s1,x,len,s2)替换函数 146
10.3.2 UPPER(s)函数和UCASE(s)字母
大写函数 146
10.3.3 LEFT(s,n)取左函数 147
10.3.4 RTRIM(s)去空格函数 147
10.3.5 SUBSTRING(s,n,len)截取函数 147
10.3.6 REVERSE(s)反转函数 148
10.3.7 FIELD(s,s1,s2,…,sn)位置函数 148
10.3.8 LOCATE(s1,s)、POSITION(s1 IN s)和INSTR(s,s1)3个位置函数 149
10.4 日期和时间函数 149
10.4.1 CURDATE()和CURRENT_DATE()
当前日期函数 151
10.4.2 CURTIME()和CURRENT_TIME()
当前时间函数 151
10.4.3 NOW()当前日期和时间函数 152
10.4.4 DATEDIFF(d1,d2)间隔天数函数 152
10.4.5 ADDDATE(d,n)日期计算函数 153
10.4.6 ADDDATE(d,INTERVAL expr type)
日期时间计算函数 153
10.4.7 SUBDATE(d,n)日期计算函数 153
10.5 条件判断函数 154
10.6 系统信息函数 155
10.6.1 获取MySQL版本号、连接数和
数据库名的函数 155
10.6.2 获取用户名的函数 155
10.6.3 获取字符串的字符集和排序方式的
函数 156
10.7 其他函数 156
10.7.1 格式化函数FORMAT(x,n) 157
10.7.2 改变字符集的函数 158
10.7.3 改变字段数据类型的函数 158
10.8 小结 158
10.9 实践与练习 159
第11章 索引 160
视频讲解:21分钟
11.1 索引概述 160
11.1.1 MySQL索引概述 161
11.1.2 MySQL索引分类 161
11.2 创建索引 162
11.2.1 在建立数据表时创建索引 162
11.2.2 在已建立的数据表中创建索引 167
11.2.3 修改数据表结构以为数据表添加索引 171
11.3 删除索引 173
11.4 小结 174
11.5 实践与练习 174
第12章 视图 175
视频讲解:26分钟
12.1 视图概述 175
12.1.1 视图的概念 176
12.1.2 视图的作用 176
12.2 创建视图 177
12.2.1 查看创建视图的权限 177
12.2.2 创建视图 178
12.2.3 创建视图的注意事项 179
12.3 视图操作 180
12.3.1 查看视图 180
12.3.2 修改视图 182
12.3.3 更新视图 184
12.3.4 删除视图 186
12.4 小结 186
12.5 实践与练习 187
第3篇 高 级 应 用
第13章 数据完整性约束 190
视频讲解:29分钟
13.1 定义完整性约束 190
13.1.1 实体完整性 191
13.1.2 参照完整性 193
13.1.3 用户定义完整性 195
13.2 命名完整性约束 198
13.3 更新完整性约束 200
13.3.1 删除完整性约束 200
13.3.2 修改完整性约束 201
13.4 小结 202
13.5 实践与练习 202
第14章 存储过程与存储函数 203
视频讲解:42分钟
14.1 创建存储过程和存储函数 203
14.1.1 创建存储过程 203
14.1.2 创建存储函数 205
14.1.3 变量的应用 207
14.1.4 光标的应用 209
14.2 调用存储过程和存储函数 210
14.2.1 调用存储过程 211
14.2.2 调用存储函数 211
14.3 查看存储过程和存储函数 212
14.3.1 SHOW STATUS语句 212
14.3.2 SHOW CREATE语句 212
14.4 修改存储过程和存储函数 213
14.5 删除存储过程和存储函数 214
14.6 小结 215
14.7 实践与练习 215
第15章 触发器 216
视频讲解:25分钟
15.1 MySQL触发器 216
15.1.1 创建MySQL触发器 216
15.1.2 创建具有多条执行语句的触发器 217
15.2 查看触发器 219
15.2.1 SHOW TRIGGERS语句 219
15.2.2 查看triggers表中触发器信息 220
15.3 使用触发器 221
15.3.1 触发器的执行顺序 221
15.3.2 使用触发器维护冗余数据 222
15.4 删除触发器 223
15.5 小结 224
15.6 实践与练习 224
第16章 事务 225
视频讲解:46分钟
16.1 事务机制 225
16.1.1 事务的概念 225
16.1.2 事务机制的必要性 226
16.1.3 关闭MySQL自动提交 228
16.1.4 事务回滚 229
16.1.5 事务提交 231
16.1.6 MySQL中的事务 231
16.1.7 回退点 233
16.2 锁机制 235
16.2.1 MySQL锁机制的基本知识 235
16.2.2 MyISAM表的表级锁 236
16.2.3 InnoDB表的行级锁 240
16.2.4 死锁的概念与避免 241
16.3 事务的隔离级别 242
16.3.1 事务的隔离级别与并发问题 242
16.3.2 设置事务的隔离级别 243
16.4 小结 243
16.5 实践与练习 243
第17章 事件 244
视频讲解:18分钟
17.1 事件概述 244
17.1.1 查看事件是否开启 245
17.1.2 开启事件 245
17.2 创建事件 246
17.3 修改事件 249
17.4 删除事件 250
17.5 小结 251
17.6 实践与练习 251
第18章 备份与恢复 252
视频讲解:44分钟
18.1 数据备份 252
18.1.1 使用mysqldump命令备份 253
18.1.2 直接复制整个数据库目录 255
18.2 数据恢复 256
18.2.1 使用mysql命令还原 256
18.2.2 直接复制到数据库目录中 256
18.3 数据库迁移 257
18.3.1 相同版本的MySQL数据库之间的
迁移 257
18.3.2 不同数据库之间的迁移 257
18.4 表的导出和导入 258
18.4.1 用SELECT...INTO OUTFILE语句
导出文本文件 258
18.4.2 用mysqldump命令导出文本文件 262
18.4.3 用mysql命令导出文本文件 264
18.4.4 用LOAD DATA INFILE命令将
文本文件导入数据表中 265
18.4.5 用mysqlimport命令导入文本文件 267
18.5 小结 268
18.6 实践与练习 268
第19章 MySQL性能优化 269
视频讲解:30分钟
19.1 优化概述 269
19.1.1 分析MySQL数据库的性能 270
19.1.2 通过profile工具分析语句消耗性能 271
19.2 优化查询 272
19.2.1 分析查询语句 272
19.2.2 索引对查询速度的影响 273
19.2.3 使用索引查询 274
19.3 优化数据库结构 276
19.3.1 将设置了很多字段的表分解成多个表 276
19.3.2 增加中间表 277
19.3.3 优化插入记录的速度 277
19.3.4 分析表、检查表和优化表 279
19.4 优化多表查询 280
19.5 优化表设计 281
19.6 小结 282
19.7 实践与练习 282
第20章 权限管理及安全控制 283
视频讲解:29分钟
20.1 安全保护策略概述 283
20.2 用户和权限管理 284
20.2.1 使用CREATE USER命令创建用户 285
20.2.2 使用DROP USER命令删除用户 285
20.2.3 使用RENAME USER命令重命名
用户 286
20.2.4 使用GRANT和REVOKE命令
管理访问权限 286
20.3 MySQL数据库安全常见问题 291
20.3.1 权限更改何时生效 291
20.3.2 设置账户密码 291
20.3.3 使密码更安全 292
20.4 日志文件 292
20.4.1 错误日志 292
20.4.2 慢查询日志 293
20.4.3 查询日志 294
20.4.4 二进制日志 294
20.5 小结 296
20.6 实践与练习 296
第4篇 项 目 实 战
第21章 Python+MySQL实现智慧校园
考试系统 298
视频讲解:112分钟
21.1 需求分析 298
21.2 系统功能设计 299
21.2.1 系统功能结构 299
21.2.2 系统业务流程 299
21.2.3 系统预览 300
21.3 系统开发必备 301
21.3.1 系统开发环境 301
21.3.2 文件夹组织结构 301
21.4 数据库设计 303
21.4.1 数据库概要 303
21.4.2 数据表模型 304
21.5 用户登录模块设计 306
21.5.1 用户登录模块概述 306
21.5.2 使用Django默认授权机制实现
普通登录 306
21.5.3 机构注册功能的实现 313
21.6 核心答题功能的设计 318
21.6.1 答题首页设计 318
21.6.2 考试详情页面 321
21.6.3 答题功能的实现 324
21.6.4 提交答案 327
21.6.5 批量录入题库 330
21.7 小结 335
第22章 Java+MySQL实现物流
配货系统 336
视频讲解:121分钟
22.1 需求分析 336
22.2 系统设计 337
22.2.1 系统目标 337
22.2.2 构建开发环境 337
22.2.3 系统功能结构 338
22.2.4 业务流程 338
22.2.5 系统预览 339
22.3 数据库设计 341
22.3.1 数据库概要 341
22.3.2 数据表结构 341
22.4 技术准备 343
22.4.1 JSP基础 343
22.4.2 JSP的内置对象 345
22.4.3 Struts 2框架 346
22.4.4 Struts 2框架的Action对象 349
22.5 公共模块设计 350
22.5.1 编写数据库持久化类 350
22.5.2 编写获取系统时间操作类 351
22.5.3 编写分页Bean 351
22.5.4 请求页面中的元素类的编写 354
22.5.5 编写重新定义的simple模板 354
22.6 管理员功能模块的设计 356
22.6.1 模块概述 356
22.6.2 代码实现 357
22.7 车源信息管理模块的设计 361
22.7.1 模块概述 361
22.7.2 代码实现 362
22.8 发货单管理模块的设计 366
22.8.1 模块概述 366
22.8.2 代码实现 367
22.9 小结 371