第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 数据库的体系结构 7
1.3.1 数据库三级模式结构 7
1.3.2 三级模式之间的映射 8
1.4 小结 8
1.5 实践与练习 9
第2章 初识MySQL 10
视频讲解:22分钟
2.1 了解MySQL 10
2.1.1 MySQL数据库的概念 10
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服务器安装 17
2.4.3 启动、连接、断开和停止MySQL服务器 27
2.4.4 打开MySQL 8.0 Command Line Client 30
2.5 如何学好MySQL 31
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 管理数据表 36
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 数据库常用对象 53
4.1.3 系统数据库 54
4.2 创建数据库 55
4.2.1 CREATE DATABASE语句创建数据库 56
4.2.2 CREATE SCHEMA语句创建数据库 56
4.2.3 创建指定字符集的数据库 56
4.2.4 创建数据库前判断是否存在同名数据库 57
4.3 查看数据库 58
4.4 选择数据库 59
4.5 修改数据库 60
4.6 删除数据库 61
4.7 小结 62
4.8 实践与练习 63
第5章 存储引擎及数据类型 64
视频讲解:18分钟
5.1 MySQL存储引擎 64
5.1.1 MySQL存储引擎的概念 64
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 创建数据表 75
6.2 查看表结构 77
6.2.1 使用SHOW COLUMNS语句查看 77
6.2.2 使用DESCRIBE语句查看 78
6.3 修改表结构 78
6.3.1 添加新字段和修改字段定义 79
6.3.2 修改字段名/类型 80
6.3.3 删除字段 81
6.3.4 修改表名 81
6.4 重命名表 82
6.5 复制表 83
6.6 删除表 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关键字查询空值 118
9.2.8 带AND的多条件查询 119
9.2.9 带OR的多条件查询 119
9.2.10 用DISTINCT关键字去除结果中的重复行 120
9.2.11 用ORDER BY关键字对查询结果排序 120
9.2.12 用GROUP BY关键字分组查询 121
9.2.13 用LIMIT限制查询结果的数量 122
9.3 聚合函数查询 123
9.3.1 COUNT()函数 123
9.3.2 SUM()函数 124
9.3.3 AVG()函数 124
9.3.4 MAX()函数 125
9.4.3 复合条件连接查询 125
9.3.5 MIN()函数 126
9.4 连接查询 126
9.4.1 内连接查询 126
9.4.2 外连接查询 127
9.5 子查询 129
9.5.1 带IN关键字的子查询 129
9.5.2 带比较运算符的子查询 130
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)函数 141
10.2.3 RAND()函数 142
10.2.4 PI()函数 142
10.2.5 TRUNCATE(x,y)函数 143
10.2.6 ROUND(x)函数和ROUND(x,y)函数 143
10.2.7 SQRT(x)函数 143
10.3 字符串函数 144
10.3.1 INSERT(s1,x,len,s2)函数 145
10.3.2 UPPER(s)函数和UCASE(s)函数 146
10.3.3 LEFT(s,n)函数 146
10.3.4 RTRIM(s)函数 146
10.3.5 SUBSTRING(s,n,len)函数 147
10.3.6 REVERSE(s)函数 147
10.3.7 FIELD(s,s1,s2,…)函数 147
10.3.8 LOCATE(s1,s)函数、POSITION(s1 IN s)函数和INSTR(s,s1)函数 148
10.4 日期和时间函数 149
10.4.1 CURDATE()函数和CURRENT_DATE()函数 150
10.4.2 CURTIME()函数和CURRENT_TIME()函数 151
10.4.3 NOW()函数 151
10.4.4 DATEDIFF(d1,d2)函数 152
10.4.5 ADDDATE(d,n)函数 152
10.4.6 ADDDATE(d,INTERVAL expr type)函数 152
10.4.7 SUBDATE(d,n)函数 153
10.5 条件判断函数 153
10.6 系统信息函数 154
10.6.1 获取MySQL版本号、连接数和数据库名的函数 155
10.6.2 获取用户名的函数 155
10.6.3 获取字符串的字符集和排序方式的函数 155
10.7 其他函数 156
10.7.1 格式化函数FORMAT(x,n) 157
10.7.2 改变字符集的函数 157
10.7.3 改变字段数据类型的函数 157
10.8 小结 158
10.9 实践与练习 158
第11章 索引 159
视频讲解:21分钟
11.1 索引概述 159
11.1.1 MySQL索引概述 159
11.1.2 MySQL索引分类 160
11.2 创建索引 161
11.2.1 在建立数据表时创建索引 161
11.2.2 在已建立的数据表中创建索引 166
11.2.3 修改数据表结构添加索引 169
11.3 删除索引 171
11.4 小结 172
11.5 实践与练习 172
第12章 视图 173
视频讲解:26分钟
12.1 视图概述 173
12.1.1 视图的概念 173
12.1.2 视图的作用 174
12.2 创建视图 174
12.2.1 查看创建视图的权限 175
12.2.2 创建视图 175
12.2.3 创建视图的注意事项 177
12.3 视图操作 177
12.3.1 查看视图 177
12.3.2 修改视图 180
12.3.3 更新视图 181
12.3.4 删除视图 183
12.4 小结 184
12.5 实践与练习 184
第3篇 高级应用
第13章 数据完整性约束 186
视频讲解:29分钟
13.1 定义完整性约束 186
13.1.1 实体完整性 186
13.1.2 参照完整性 189
13.1.3 用户定义完整性 191
13.2 命名完整性约束 194
13.3 更新完整性约束 196
13.3.1 删除完整性约束 196
13.3.2 修改完整性约束 197
13.4 小结 198
13.5 实践与练习 198
第14章 存储过程与存储函数 199
视频讲解:42分钟
14.1 创建存储过程和存储函数 199
14.1.1 创建存储过程 199
14.1.2 创建存储函数 201
14.1.3 变量的应用 203
14.1.4 光标的应用 205
14.2 调用存储过程和存储函数 207
14.2.1 调用存储过程 207
14.2.2 调用存储函数 207
14.3 查看存储过程和存储函数 208
14.3.1 SHOW STATUS语句 208
14.3.2 SHOW CREATE语句 208
14.4 修改存储过程和存储函数 209
14.5 删除存储过程和存储函数 210
14.6 小结 211
14.7 实践与练习 211
第15章 触发器 212
视频讲解:25分钟
15.1 MySQL触发器 212
15.1.1 创建MySQL触发器 212
15.1.2 创建具有多条执行语句的触发器 214
15.2 查看触发器 215
15.2.1 SHOW TRIGGERS语句 215
15.2.2 查看triggers表中触发器信息 216
15.3 使用触发器 217
15.3.1 触发器的执行顺序 217
15.3.2 使用触发器维护冗余数据 218
15.4 删除触发器 220
15.5 小结 221
15.6 实践与练习 221
第16章 事务 222
视频讲解:46分钟
16.1 事务机制 222
16.1.1 事务的概念 222
16.1.2 事务机制的必要性 223
16.1.3 关闭MySQL自动提交 225
16.1.4 事务回滚 226
16.1.5 事务提交 228
16.1.6 MySQL中的事务 229
16.1.7 回退点 231
16.2 锁机制 232
16.2.1 MySQL锁机制的基本知识 232
16.2.2 MyISAM表的表级锁 234
16.2.3 InnoDB表的行级锁 237
16.2.4 死锁的概念与避免 239
16.3 事务的隔离级别 239
16.3.1 事务的隔离级别与并发问题 240
16.3.2 设置事务的隔离级别 240
16.4 小结 241
16.5 实践与练习 241
第17章 事件 242
视频讲解:18分钟
17.1 事件概述 242
17.1.1 查看事件是否开启 242
17.1.2 开启事件 243
17.2 创建事件 244
17.3 修改事件 247
17.4 删除事件 248
17.5 小结 249
17.6 实践与练习 249
第18章 备份与恢复 250
视频讲解:44分钟
18.1 数据备份 250
18.1.1 使用mysqldump命令备份 251
18.1.2 直接复制整个数据库目录 253
18.2 数据恢复 253
18.2.1 使用mysql命令还原 254
18.2.2 直接复制到数据库目录 254
18.3 数据库迁移 254
18.3.1 相同版本的MySQL数据库之间的迁移 255
18.3.2 不同数据库之间的迁移 255
18.4 表的导出和导入 256
18.4.1 用SELECT...INTO OUTFILE语句导出文本文件 256
18.4.2 用mysqldump命令导出文本文件 258
18.4.3 用mysql命令导出文本文件 259
18.4.4 用LOAD DATA INFILE命令将文本文件导入数据表 260
18.4.5 用mysqlimport命令导入文本文件 262
18.5 小结 264
18.6 实践与练习 264
第19章 MySQL性能优化 265
视频讲解:30分钟
19.1 优化概述 265
19.1.1 分析MySQL数据库的性能 266
19.1.2 通过profile工具分析语句消耗性能 267
19.2 优化查询 268
19.2.1 分析查询语句 268
19.2.2 索引对查询速度的影响 269
19.2.3 使用索引查询 270
19.3 优化数据库结构 272
19.3.1 将字段很多的表分解成多个表 272
19.3.2 增加中间表 273
19.3.3 优化插入记录的速度 274
19.3.4 分析表、检查表和优化表 275
19.4 优化多表查询 276
19.5 优化表设计 277
19.6 小结 278
19.7 实践与练习 278
第20章 权限管理及安全控制 279
视频讲解:29分钟
20.1 安全保护策略概述 279
20.2 用户和权限管理 280
20.2.1 使用CREATE USER命令创建用户 280
20.2.2 使用DROP USER命令删除用户 281
20.2.3 使用RENAME USER命令重命名用户 282
20.2.4 使用GRANT和REVOKE命令管理访问权限 282
20.3 MySQL数据库安全常见问题 287
20.3.1 权限更改何时生效 287
20.3.2 设置账户密码 287
20.3.3 使密码更安全 288
20.4 日志文件 288
20.4.1 错误日志 288
20.4.2 慢查询日志 289
20.4.3 查询日志 290
20.4.4 二进制日志 290
20.5 小结 292
20.6 实践与练习 292
第21章 PHP管理MySQL数据库中的数据 293
视频讲解:109分钟
21.1 PHP语言概述 293
21.1.1 PHP的概念 293
21.1.2 PHP的特点 294
21.1.3 PHP的工作原理 295
21.1.4 PHP结合数据库应用的优势 296
21.2 PHP操作MySQL数据库的基本步骤 296
21.2.1 连接MySQL服务器 296
21.2.2 选择MySQL数据库 297
21.2.3 执行SQL语句 298
21.2.4 将结果集返回到数组 299
21.2.5 从结果集中获取一行作为对象 302
21.2.6 从结果集中获取一行作为枚举数组 304
21.2.7 从结果集中获取一行作为关联数组 305
21.2.8 获取查询结果集中的记录数 305
21.2.9 释放内存 306
21.2.10 关闭连接 306
21.3 管理MySQL数据库中的数据 307
21.3.1 添加数据 307
21.3.2 编辑数据 311
21.3.3 删除数据 315
21.4 小结 316
21.5 实践与练习 317
第4篇 项目实战
第22章 PHP+MySQL实现物流配送信息网 320
视频讲解:76分钟
22.1 开发背景 321
22.2 系统分析 321
22.2.1 需求分析 321
22.2.2 可行性分析 321
22.3 系统设计 322
22.3.1 系统目标 322
22.3.2 系统功能结构 322
22.3.3 系统预览 323
22.3.4 开发环境 325
22.3.5 文件夹组织结构 326
22.4 数据库设计 326
22.4.1 数据库分析 326
22.4.2 数据库概念设计 326
22.4.3 创建数据库及数据表 328
22.5 网站首页设计 330
22.5.1 网站首页概述 330
22.5.2 网站首页技术分析 331
22.5.3 网站首页的实现过程 331
22.6 车源信息查询模块设计 333
22.6.1 车源信息查询模块概述 333
22.6.2 车源信息查询模块技术分析 333
22.6.3 车源信息查询模块的实现过程 334
22.7 发货单管理模块设计 335
22.7.1 发货单管理模块概述 335
22.7.2 发货单管理模块技术分析 336
22.7.3 发货单填单的实现过程 338
22.7.4 发货单查询的实现过程 343
22.7.5 发货单删除的实现过程 344
22.7.6 查看发货单明细的实现过程 345
22.7.7 发货单打印的实现过程 346
22.7.8 回执单验收的实现过程 347
22.8 基础信息管理模块设计 349
22.8.1 基础信息管理模块概述 349
22.8.2 管理员信息管理的实现过程 350
22.8.3 客户信息管理的实现过程 352
22.8.4 车源信息管理的实现过程 354
22.9 开发技巧与难点分析 356
22.9.1 应用Session存储有关用户会话的信息 356
22.9.2 应用正则表达式验证电话号码 357
22.10 小结 358
第23章 Python+MySQL实现在线学习笔记 359
视频讲解:55分钟
23.1 需求分析 359
23.2 系统设计 360
23.2.1 系统目标 360
23.2.2 系统业务流程 360
23.2.3 系统预览 360
23.3 系统开发** 362
23.3.1 开发工具准备 362
23.3.2 文件夹组织结构 362
23.3.3 项目使用说明 363
23.4 技术准备 363
23.4.1 PyMySQL模块 363
23.4.2 WTForms模块 364
23.5 数据库设计 366
23.5.1 数据库概要说明 366
23.5.2 创建数据表 366
23.5.3 数据库操作类 367
23.6 用户模块设计 370
23.6.1 用户注册功能的实现 370
23.6.2 用户登录功能的实现 373
23.6.3 退出登录功能的实现 376
23.6.4 用户权限管理功能的实现 376
23.7 笔记模块设计 377
23.7.1 笔记列表功能的实现 377
23.7.2 添加笔记功能的实现 378
23.7.3 编辑笔记功能的实现 380
23.7.4 删除笔记功能的实现 381
23.8 小结 382
第24章 Struts 2+Spring+Hibernate+MySQL实现网络商城 383
视频讲解:151分钟
24.1 开发背景 383
24.2 系统分析 384
24.2.1 需求分析 384
24.2.2 可行性分析 384
24.3 系统设计 385
24.3.1 功能结构图 385
24.3.2 系统流程图 386
24.3.3 开发环境 387
24.3.4 文件夹组织结构 387
24.3.5 系统预览 387
24.4 数据库设计 390
24.4.1 数据库概念化设计 390
24.4.2 创建数据库及数据表 391
24.5 公共模块设计 393
24.5.1 泛型工具类 394
24.5.2 数据持久化类 394
24.5.3 分页操作 395
24.5.4 字符串工具类 397
24.5.5 实体映射 397
24.6 项目环境搭建 403
24.6.1 配置Struts 2 403
24.6.2 配置Hibernate 406
24.6.3 配置Spring 407
24.6.4 配置web.xml 408
24.7 登录注册模块设计 409
24.7.1 模块概述 409
24.7.2 注册模块的实现 410
24.8 前台商品信息查询模块设计 411
24.8.1 模块概述 411
24.8.2 前台商品信息查询模块技术分析 411
24.8.3 商品搜索模块的实现 412
24.8.4 前台商品其他查询的实现 414
24.9 购物车模块设计 416
24.9.1 模块概述 416
24.9.2 购物车模块技术分析 417
24.9.3 购物车基本功能的实现 417
24.9.4 订单相关功能的实现 420
24.10 后台商品管理模块设计 423
24.10.1 模块概述 423
24.10.2 后台商品管理模块技术分析 423
24.10.3 商品管理功能的实现 424
24.10.4 商品类别管理功能的实现 429
24.11 后台订单管理模块设计 432
24.11.1 模块概述 432
24.11.2 后台订单管理模块技术分析 433
24.11.3 后台订单查询的实现 434
24.12 开发技巧与难点分析 436
24.12.1 解决订单号为空时查询报错 436
24.12.2 通过Struts 2的拦截器来解决Session超时出现空指针异常的问题 437
24.13 小结 438