第1篇 入门篇 2
第1章 了解MySQL 2
1.1 什么是MySQL 3
1.1.1 MySQL的发展史 3
1.1.2 MySQL的特性 4
1.1.3 MySQL的管理软件 4
1.1.4 MySQL的应用环境 5
1.1.5 MySQL下载 5
1.2 本章小结 7
第2章 准备安装MySQL环境 8
2.1 搭建MySQL开发环境 9
2.1.1 Windows下搭建MySQL环境 9
2.1.2 Linux下搭建MySQL环境 17
2.2 启动、停止、连接和断开MySQL服务器 20
2.2.1 启动、停止MySQL服务器 20
2.2.2 连接、断开MySQL服务器 21
2.3 使用免安装的MySQL 24
2.4 phpMyAdmin图形化管理工具 26
2.4.1 管理数据库操作 26
2.4.2 管理数据表 28
2.4.3 管理数据记录 30
2.4.4 导入和导出数据 33
2.4.5 phpMyAdmin设置编码格式 34
2.4.6 phpMyAdmin添加服务器新用户 36
2.4.7 phpMyAdmin中重置MySQL服务器登录密码 37
2.5 综合应用 38
2.5.1 启动、停止MySQL服务器 38
2.5.2 连接MySQL服务器 38
2.6 本章常见错误 39
2.6.1 忘记MySQL数据库的密码 39
2.6.2 mysql命令的结束处加了分号 39
2.6.3 与所导入的数据库同名的数据库不存在 39
2.7 本章小结 39
2.8 跟我上机 39
第3章 MySQL数据类型与运算符 40
3.1 MySQL数据类型 41
3.1.1 数字类型 41
3.1.2 字符串类型 42
3.1.3 日期和时间类型 43
3.2 MySQL运算符 44
3.3 算术运算符 45
3.4 比较运算符 46
3.5 逻辑运算符 50
3.6 位运算符 52
3.7 运算符的优先级 53
3.8 综合应用 53
3.8.1 位运算符的使用 53
3.8.2 逻辑运算符的使用 54
3.9 本章常见错误 54
3.9.1 使用逻辑运算符时漏写了一个“&”或“|” 54
3.9.2 MySQL数据库中存储路径不正确 55
3.10 本章小结 55
3.11 跟我上机 55
第4章 MySQL存储引擎 56
4.1 MySQL存储引擎 57
4.1.1 查询MySQL中支持的存储引擎 57
4.1.2 InnoDB存储引擎 58
4.1.3 MyISAM存储引擎 59
4.1.4 MEMORY存储引擎 60
4.1.5 如何选择存储引擎 61
4.1.6 设置数据表的存储引擎 62
4.2 综合应用 63
4.3 本章常见错误 64
4.3.1 修改默认存储引擎后没有生效 64
4.3.2 使用MEMORY存储引擎 64
4.4 本章小结 64
4.5 跟我上机 64
第5章 MySQL基本操作 65
5.1 MySQL数据库操作 66
5.1.1 创建数据库CREATE DATABASE 66
5.1.2 查看数据库SHOW DATABASES 66
5.1.3 选择数据库USE DATABASE 67
5.1.4 删除数据库DROP DATABASE 67
5.2 MySQL数据表操作 68
5.2.1 创建数据表CREATE TABLE 68
5.2.2 查看表结构DESCRIBE或SHOW COLUMNS 69
5.2.3 修改表结构ALTER TABLE 70
5.2.4 重命名表RENAME TABLE 72
5.2.5 删除表DROP TABLE 72
5.3 MySQL语句操作 73
5.3.1 插入记录INSERT 73
5.3.2 查询数据库记录SELECT 74
5.3.3 修改记录UPDATE 77
5.3.4 删除记录DELETE 78
5.4 综合应用 79
5.4.1 操作teacher表 79
5.4.2 字段修改到指定位置 80
5.5 本章常见错误 80
5.5.1 执行修改和删除操作时未指定WHERE条件语句 80
5.5.2 创建的数据库和已存在的数据库重名 80
5.6 本章小结 80
5.7 跟我上机 81
第6章 MySQL数据查询 82
6.1 基本查询语句 83
6.2 单表查询 84
6.2.1 查询所有字段 84
6.2.2 查询指定字段 85
6.2.3 查询指定数据 85
6.2.4 带IN关键字的查询 86
6.2.5 带BETWEEN AND的范围查询 87
6.2.6 带LIKE的字符匹配查询 87
6.2.7 带AND的多条件查询 88
6.2.8 带OR的多条件查询 89
6.2.9 用DISTINCT关键字去除结果中的重复行 89
6.2.10 用ORDER BY关键字对查询结果排序 90
6.2.11 用GROUP BY关键字分组查询 90
6.2.12 用LIMIT限制查询结果的数量 92
6.3 聚合函数查询 93
6.3.1 COUNT()函数 93
6.3.2 SUM()函数 94
6.3.3 AVG()函数 94
6.3.4 MAX()函数 95
6.3.5 MIN()函数 96
6.4 连接查询 96
6.4.1 内连接查询 96
6.4.2 外连接查询 97
6.4.3 复合条件连接查询 99
6.5 子查询 99
6.5.1 带IN关键字的子查询 99
6.5.2 带比较运算符的子查询 100
6.5.3 带EXISTS关键字的子查询 101
6.5.4 带ANY关键字的子查询 103
6.5.5 带ALL关键字的子查询 103
6.6 合并查询结果 104
6.7 定义表和字段的别名 106
6.7.1 为表取别名 106
6.7.2 为字段取别名 106
6.8 使用正则表达式查询 107
6.8.1 匹配指定字符中的任意一个 108
6.8.2 使用“*”和“+”来匹配多个字符 109
6.9 综合应用 110
6.9.1 使用聚合函数SUM()对学生成绩进行汇总 110
6.9.2 查询大于指定条件的记录 111
6.10 本章常见错误 112
6.10.1 查询语句结束处未写分号 112
6.10.2 查询输出中文字符串时出现乱码 112
6.11 本章小结 112
6.12 跟我上机 113
第7章 MySQL函数 114
7.1 MySQL函数 115
7.2 数学函数 115
7.2.1 ABS(x)函数 116
7.2.2 RAND()函数 117
7.2.3 FLOOR(x)函数 117
7.2.4 PI()函数 118
7.2.5 TRUNCATE(x,y)函数 118
7.2.6 ROUND(x)和ROUND(x,y)函数 118
7.2.7 SQRT(x)函数 119
7.3 字符串函数 119
7.3.1 INSERT(s1,x,len,s2)函数 121
7.3.2 UPPER(s)和UCASE(s)函数 121
7.3.3 LEFT(s,n)函数 121
7.3.4 RTRIM(s)函数 122
7.3.5 SUBSTRING(s,n,len)函数 122
7.3.6 REVERSE(s)函数 123
7.3.7 FIELD(s,s1,s2,...)函数 123
7.4 日期和时间函数 123
7.4.1 CURDATE()和CURRENT_DATE()函数 125
7.4.2 CURTIME()和CURRENT_TIME()函数 125
7.4.3 NOW()函数 126
7.4.4 DATEDIFF(d1,d2)函数 126
7.4.5 ADDDATE(d,n)函数 127
7.4.6 ADDDATE(d,INTERVAL expr type)函数 127
7.4.7 SUBDATE(d,n)函数 127
7.5 条件判断函数 128
7.6 系统信息函数 129
7.7 加密函数 130
7.8 其他函数 131
7.9 综合应用 132
7.9.1 不同进制的数字进行转换的函数 132
7.9.2 生成3个1~100之间的随机整数 133
7.10 本章常见错误 133
7.10.1 SUBSTRING(s,n,len)函数的第二个参数错误 133
7.10.2 日期和时间函数中的日期和时间未加引号 133
7.11 本章小结 134
7.12 跟我上机 134
第8章 MySQL索引 135
8.1 MySQL索引 136
8.1.1 什么是MySQL索引 136
8.1.2 MySQL索引分类 136
8.2 创建索引 137
8.2.1 在创建数据表时创建索引 137
8.2.2 在已存在的数据表中创建索引 142
8.2.3 修改数据表结构添加索引 146
8.3 删除索引 148
8.4 综合应用 149
8.4.1 用CREATE INDEX创建索引 149
8.4.2 使用ALTER TABLE语句创建全文索引 150
8.5 本章常见错误 150
8.5.1 建立全文索引时出现错误 150
8.5.2 创建索引时指定的索引字段不存在 151
8.6 本章小结 151
8.7 跟我上机 151
第9章 MySQL视图 152
9.1 MySQL视图 153
9.1.1 视图的概念 153
9.1.2 视图的作用 153
9.2 创建视图 154
9.2.1 查看用户是否具有创建视图的权限 154
9.2.2 创建视图 155
9.2.3 创建视图的注意事项 156
9.3 查看视图 156
9.4 修改视图 158
9.5 更新视图 160
9.6 删除视图 163
9.7 综合应用 164
9.7.1 在views表中查看视图的详细信息 164
9.7.2 使用MySQL视图查询学生信息表 164
9.8 本章常见错误 166
9.8.1 创建视图的表不存在 166
9.8.2 视图不能更新 166
9.9 本章小结 166
9.10 跟我上机 167
第2篇 提高篇 170
第10章 MySQL存储过程和函数 170
10.1 存储过程和函数的创建 171
10.1.1 创建存储过程 171
10.1.2 创建存储函数 173
10.1.3 变量的应用 174
10.1.4 光标的运用 177
10.2 流程控制语句 179
10.2.1 IF语句 179
10.2.2 CASE语句 180
10.2.3 WHILE循环语句 182
10.2.4 LOOP循环语句 183
10.2.5 REPEAT循环语句 184
10.3 调用存储过程和存储函数 186
10.3.1 调用存储过程 186
10.3.2 调用存储函数 187
10.4 查看存储过程和函数 187
10.4.1 SHOW STATUS语句 187
10.4.2 SHOW CREATE语句 188
10.5 修改存储过程和存储函数 188
10.6 删除存储过程和存储函数 190
10.7 捕获存储过程中的错误 191
10.7.1 定义条件 191
10.7.2 定义处理程序 192
10.8 综合应用 192
10.8.1 使用存储过程实现用户注册 192
10.8.2 使用存储过程实现用户登录 194
10.9 本章常见错误 195
10.9.1 存储过程或存储函数已存在 195
10.9.2 存储过程名与MySQL内建函数重名 195
10.10 本章小结 196
10.11 跟我上机 196
第11章 MySQL触发器 197
11.1 MySQL触发器 198
11.1.1 创建只有一个执行语句的触发器 198
11.1.2 创建具有多个执行语句的触发器 199
11.2 查看触发器 201
11.2.1 SHOW TRIGGERS语句查看触发器信息 201
11.2.2 查看triggers表中触发器信息 202
11.3 应用触发器 203
11.4 删除触发器 204
11.5 综合应用 205
11.5.1 创建一个由INSERT触发的触发器 205
11.5.2 获取数据库中的触发器 206
11.6 本章常见错误 207
11.6.1 触发器未删除造成数据变化 207
11.6.2 BEGIN与END之间多条语句未用分号分开 208
11.7 本章小结 208
11.8 跟我上机 208
第12章 MySQL事务 209
12.1 什么是MySQL事务 210
12.1.1 原子性 211
12.1.2 一致性 211
12.1.3 孤立性 211
12.1.4 持久性 212
12.2 MySQL事务的创建与存在周期 212
12.2.1 初始化事务 213
12.2.2 创建事务 213
12.2.3 应用SELECT语句查看数据是否被正确输入 214
12.2.4 提交事务 214
12.2.5 撤销事务(事务回滚) 214
12.2.6 事务的存在周期 215
12.3 MySQL行为 216
12.3.1 自动提交 216
12.3.2 事务的孤立级 217
12.3.3 修改事务的孤立级 218
12.4 事务和性能 218
12.4.1 应用小事务 218
12.4.2 选择合适的孤立级 219
12.4.3 死锁的概念与避免 219
12.5 MySQL伪事务 220
12.5.1 用表锁定代替事务 220
12.5.2 应用表锁实现伪事务 223
12.6 综合应用 223
12.6.1 使用事务实现银行的安全转账 223
12.6.2 使用事务处理技术实现关联表间信息的删除 224
12.7 本章常见错误 226
12.7.1 MySQL数据表不支持事务 226
12.7.2 不能创建InnoDB类型的数据表 227
12.8 本章小结 227
12.9 跟我上机 227
第13章 MySQL备份与还原 228
13.1 数据库备份 229
13.1.1 使用mysqldump命令备份 229
13.1.2 通过复制进行备份 231
13.1.3 使用mysqlhotcopy工具快速备份 231
13.2 数据库还原 232
13.2.1 使用mysql命令还原 232
13.2.2 通过复制进行还原 233
13.3 导出数据表 234
13.3.1 用SELECT...INTO OUTFILE导出文本文件 234
13.3.2 用mysqldump命令导出文本文件 235
13.3.3 用mysql命令导出文本文件 236
13.4 综合应用 237
13.4.1 使用mysql命令导出HTML文件 237
13.4.2 使用mysqldump命令导出XML文件 238
13.5 本章常见错误 239
13.5.1 指定密码时“-p”与密码之间有空格 239
13.5.2 附加选项option未加引号 239
13.6 本章小结 239
13.7 跟我上机 239
第14章 MySQL系统管理 240
14.1 MySQL系统管理概述 241
14.1.1 MySQL系统的构成 241
14.1.2 日常管理 242
14.1.3 安全问题 243
14.1.4 数据库维护 244
14.2 数据目录的位置和结构 244
14.2.1 数据目录的位置 244
14.2.2 数据目录的结构 246
14.3 MySQL服务器如何提供对数据的访问 247
14.4 MySQL支持的数据表类型 248
14.4.1 ISAM数据表 248
14.4.2 MyISAM数据表 248
14.4.3 BDB数据表 248
14.4.4 InnoDB数据表 248
14.4.5 MERGE数据表 249
14.4.6 HEAP数据表 249
14.5 SQL语句如何操作数据表文件 249
14.5.1 创建数据表 249
14.5.2 更新数据表 249
14.5.3 删除数据表 250
14.6 MySQL状态文件和日志文件 250
14.7 操作系统对数据库和数据表命名规则的限制 252
14.8 MySQL数据目录的结构对系统性能的影响 254
14.9 本章常见错误 255
14.9.1 系统备份前没有关闭MySQL服务器 255
14.9.2 数据库或数据表名中含有路径分隔符 255
14.10 本章小结 255
14.11 跟我上机 256
第15章 MySQL性能优化 257
15.1 性能优化简介 258
15.2 优化查询 259
15.2.1 分析查询语句 259
15.2.2 索引对查询速度的影响 260
15.2.3 使用索引优化查询 262
15.3 查询高速缓存 264
15.3.1 检验高速缓存是否开启 264
15.3.2 使用高速缓存 265
15.4 优化数据库结构 266
15.4.1 分析表、检查表和优化表 266
15.4.2 将多字段的表分解成多个表 267
15.4.3 建立中间表 268
15.4.4 优化插入记录的速度 269
15.5 优化多表查询和表设计 270
15.5.1 优化多表查询 270
15.5.2 优化表设计 272
15.6 综合应用 272
15.6.1 查看MySQL服务器的连接、查询次数 272
15.6.2 检查表 273
15.7 本章常见错误 274
15.7.1 使用OR关键字时有一个字段不为索引 274
15.7.2 应用LIKE匹配字符串时第一个字符是“%” 274
15.8 本章小结 274
15.9 跟我上机 274
第16章 MySQL安全技术 275
16.1 MySQL基本的安全策略 276
16.2 用户和权限管理 277
16.2.1 CREATE USER命令 277
16.2.2 DROP USER命令 277
16.2.3 RENAME USER命令 278
16.2.4 GRANT和REVOKE命令 278
16.3 MySQL安全的常见问题 281
16.3.1 权限更改何时生效 281
16.3.2 设置用户密码 282
16.3.3 使密码更安全 283
16.4 本章常见错误 284
16.4.1 创建账户已存在 284
16.4.2 对账户重命名时的错误 284
16.5 本章小结 284
16.6 跟我上机 284
第17章 MySQL日常管理 285
17.1 MySQL连接故障恢复 286
17.1.1 UNIX套接字文件被误删 286
17.1.2 忘记root口令 286
17.2 日志文件管理 287
17.2.1 查询日志 288
17.2.2 慢日志 288
17.2.3 二进制日志 289
17.2.4 错误日志 291
17.2.5 日志维护 291
17.2.6 日志失效处理 292
17.3 MySQL服务器镜像配置 296
17.3.1 镜像机制 296
17.3.2 建立主-从镜像关系 296
17.3.3 MySQL双机热备份 298
17.4 MySQL服务器的优化 301
17.4.1 参数变量的设置 301
17.4.2 改变一些服务器变量的值 302
17.4.3 改变InnoDB处理程序变量的值 303
17.5 MySQL服务器的一些特殊配置 303
17.5.1 国际化和本地化 303
17.5.2 对连接监听情况进行控制 305
17.5.3 启用或禁用LOCAL能力 305
17.5.4 对老版本数据表进行升级 305
17.6 运行多个MySQL服务器 306
17.6.1 设置MySQL服务器启动选项的策略 306
17.6.2 使用mysql_multi脚本启动多个MySQL服务器 306
17.6.3 在Windows系统上运行多个MySQL服务器 307
17.6.4 运行多个MySQL服务器需要注意的问题 308
17.7 本章常见错误 309
17.7.1 对打开的日志文件更名 309
17.7.2 服务器的显示时间和当地时间不一致 309
17.8 本章小结 309
17.9 跟我上机 310
第18章 PHP操作MySQL数据库 311
18.1 PHP访问MySQL数据库的一般步骤 312
18.2 PHP操作MySQL数据库的方法 313
18.2.1 使用mysql_connect()函数连接MySQL服务器 313
18.2.2 使用mysql_select_db()函数选择数据库文件 314
18.2.3 使用mysql_query()函数执行SQL语句 315
18.2.4 应用mysql_fetch_array()函数从数组结果集中获取信息 317
18.2.5 应用mysql_fetch_object()函数从结果集中获取一行作为对象 318
18.2.6 应用mysql_fetch_row()函数逐行获取结果集中的每条记录 320
18.2.7 应用mysql_num_rows()函数获取查询结果集中的记录数 322
18.2.8 关闭连接 323
18.3 管理MySQL数据库中的数据 324
18.3.1 向数据库中添加数据 324
18.3.2 编辑数据库数据 326
18.3.3 从数据库中删除数据 328
18.3.4 批量数据操作 329
18.4 综合应用 330
18.4.1 输入页码跳转到指定页 330
18.4.2 对查询结果进行降序排列输出 332
18.5 本章常见错误 333
18.5.1 数据库导致的错误 333
18.5.2 刷新页面重复提交 334
18.5.3 获取数据库中数据出现乱码 334
18.6 本章小结 334
18.7 跟我上机 335
第3篇 实战篇 338
第19章 九九度供求信息网 338
19.1 开发背景 339
19.2 系统分析 339
19.2.1 需求分析 339
19.2.2 可行性分析 339
19.2.3 编写项目计划书 341
19.3 系统设计 342
19.3.1 系统目标 342
19.3.2 系统功能结构 343
19.3.3 系统流程图 344
19.3.4 系统预览 344
19.3.5 开发环境 345
19.3.6 文件夹组织结构 346
19.4 在Windows操作系统下搭建PHP开发环境 346
19.4.1 在Windows系统下应用AppServ快速配置PHP开发环境 346
19.4.2 Windows系统下Apache的安装配置 350
19.4.3 Windows系统下MySQL的安装配置 354
19.4.4 Windows系统下PHP的安装配置 355
19.4.5 在Windows系统下设置IIS+PHP的执行环境 356
19.5 数据库设计 360
19.5.1 数据库分析 360
19.5.2 数据库概念设计 360
19.5.3 使用PowerDesigner建模 361
19.5.4 创建数据库及数据表 364
19.6 单元测试 366
19.6.1 单元测试概述 366
19.6.2 单元测试的优点 366
19.7 前台首页设计 367
19.7.1 前台首页概述 367
19.7.2 前台首页技术分析 368
19.7.3 前台首页的实现过程 369
19.8 免费供求信息发布模块设计 370
19.8.1 免费供求信息发布模块概述 370
19.8.2 免费供求信息发布模块技术分析 371
19.8.3 免费供求信息发布模块的实现过程 374
19.9 信息检索模块设计 376
19.9.1 信息检索模块概述 376
19.9.2 信息检索模块技术分析 376
19.9.3 信息检索模块的实现过程 378
19.10 后台首页设计 381
19.10.1 后台首页概述 381
19.10.2 后台首页技术分析 382
19.10.3 后台首页的实现过程 385
19.11 付费供求信息发布模块设计 385
19.11.1 付费供求信息发布模块概述 385
19.11.2 付费供求信息发布模块技术分析 386
19.11.3 付费供求信息发布模块的实现过程 387
19.12 付费信息管理模块设计 389
19.12.1 付费信息管理模块概述 389
19.12.2 付费信息管理模块技术分析 389
19.12.3 付费信息显示的实现过程 391
19.12.4 付费信息审核的实现过程 394
19.12.5 付费信息删除的实现过程 395
19.12.6 单元测试 395
19.13 网站发布 397
19.14 开发技巧与难点分析 399
19.14.1 查询关键字描红功能 399
19.14.2 表单数据的提交方式 400
19.15 MySQL数据库技术专题 402
19.15.1 创建和删除数据库 402
19.15.2 创建和删除数据表 403
19.16 本章小结 404
第20章 BCTY365网上社区 405
20.1 系统设计思路 406
20.1.1 系统功能结构 406
20.1.2 系统预览 407
20.1.3 文件夹组织结构 408
20.2 数据库设计 408
20.2.1 数据库概要说明 409
20.2.2 数据库概念设计 409
20.2.3 数据库逻辑设计 410
20.3 前台首页设计 413
20.3.1 前台首页概述 413
20.3.2 公告信息的滚动输出技术 415
20.3.3 前台首页的实现过程 417
20.4 注册模块设计 418
20.4.1 注册模块概述 418
20.4.2 通过JavaScript脚本验证表单元素 419
20.4.3 注册模块的实现过程 421
20.5 技术支持模块设计 422
20.5.1 技术支持模块概述 422
20.5.2 分页技术 422
20.5.3 常见问题的实现过程 424
20.5.4 客户反馈的实现过程 425
20.6 在线订购模块设计 426
20.6.1 在线订购模块概述 426
20.6.2 订单的预览及打印技术 426
20.6.3 购物车的实现过程 429
20.6.4 商品订单的实现过程 431
20.7 社区论坛模块设计 433
20.7.1 社区论坛模块概述 433
20.7.2 页面跳转技术 433
20.7.3 论坛分类的实现过程 434
20.7.4 论坛帖子浏览的实现过程 436
20.7.5 论坛帖子发布的实现过程 439
20.7.6 论坛帖子回复的实现过程 441
20.8 后台首页设计 443
20.8.1 后台首页概述 443
20.8.2 switch框架技术 444
20.8.3 后台首页的实现过程 445
20.9 编程词典管理模块设计 446
20.9.1 编程词典管理模块概述 446
20.9.2 图片上传技术 446
20.9.3 添加编程词典的实现过程 448
20.9.4 编辑编程词典的实现过程 450
20.10 软件升级管理模块设计 451
20.10.1 软件升级管理模块概述 451
20.10.2 动态输出下拉列表框的值 451
20.10.3 软件升级包上传的实现过程 453
20.10.4 软件升级包删除的实现过程 454
20.11 在线支付技术专题 455
20.12 本章小结 458