第1章 MySQL数据库概述 1
1.1 数据管理和数据库系统 2
1.1.1 数据管理技术 2
1.1.2 数据库系统 3
1.1.3 常见的数据库 5
1.2 MySQL数据库概述 6
1.2.1 MySQL数据库的发展背景 7
1.2.2 MySQL使用优势 8
1.2.3 MySQL系统特性 9
1.2.4 MySQL发行版本 9
1.3 MySQL5.6 数据库 10
1.3.1 MySQL5.6 新增亮点 10
1.3.2 MySQL5.6 安装步骤 11
1.3.3 MySQL的启动和登录 16
1.3.4 执行基本语句 19
1.4 手动更改MySQL配置 20
1.5 常见的错误代码 23
1.6 本章习题 25
第2章 MySQL管理工具 27
2.1 MySQL的自带命令 28
2.1.1 查看自带的命令工具 28
2.1.2 DOS窗口执行命令 29
2.1.3 mysqladmin命令 31
2.1.4 mysqlshow命令 34
2.1.5 mysqlbinlog命令 37
2.1.6 perror命令 39
2.2 mysql的常用命令 39
2.2.1 mysql语法选项 40
2.2.2 mysql命令 41
2.3 实战——从文本文件执行SQL语句 43
2.4 图形界面管理工具 45
2.4.1 常用的界面管理工具 45
2.4.2 认识Workbench工具 48
2.4.3 Workbench简单使用 48
2.5 本章习题 52
第3章 数据库基本操作 55
3.1 MySQL存储引擎 56
3.1.1 查看数据库存储引擎 56
3.1.2 存储引擎MyISAM 58
3.1.3 存储引擎MEMORY 59
3.1.4 存储引擎InnoDB 59
3.1.5 其他存储引擎 60
3.1.6 如何选择存储引擎 62
3.2 创建数据库 62
3.2.1 MySQLWorkbench创建 62
3.2.2 数据库字符集和校对规则 64
3.2.3 MySQL的控制台创建 65
3.3 查看数据库 66
3.3.1 查看所有数据库 67
3.3.2 查看数据库详细信息 67
3.4 修改数据库 68
3.5 删除数据库 69
3.6 数据库的其他操作 70
3.7 实战——创建鲜花网站数据库 71
3.8 本章习题 72
第4章 数据表的操作 75
4.1 数据表 76
4.1.1 数据表概述 76
4.1.2 MySQL数据表类型 77
4.2 字段数据类型 78
4.2.1 字段数据类型分类 78
4.2.2 整数型 79
4.2.3 浮点型 79
4.2.4 字符串 80
4.2.5 时间日期 82
4.2.6 复合类型 83
4.3 表的操作 84
4.3.1 创建表 84
4.3.2 查看表结构 86
4.3.3 添加表数据 88
4.3.4 删除表 90
4.3.5 查看数据库中的表 92
4.3.6 修改表名 92
4.3.7 实战——创建商品信息表 93
4.4 字段操作 94
4.4.1 字段类型修改 94
4.4.2 添加字段 96
4.4.3 删除字段 98
4.4.4 字段位置修改 99
4.4.5 实战——操作商品信息表 100
4.5 本章习题 102
第5章 字段约束 105
5.1 数据完整性 106
5.2 主键约束 106
5.2.1 主键简介 106
5.2.2 设置主键 107
5.2.3 修改主键 108
5.3 外键约束 109
5.3.1 外键简介 109
5.3.2 外键的使用 110
5.4 非空约束 114
5.5 默认值 116
5.5.1 默认值约束 116
5.5.2 设置默认值为当前时间 119
5.6 唯一性约束 121
5.7 自增约束 124
5.7.1 自增约束概述 124
5.7.2 自增约束的使用 127
5.8 删除指定名称的约束 130
5.9 实战——创建职工登记表 131
5.10 实战——创建商品信息表 132
5.11 本章习题 133
第6章 数据记录基本操作 137
6.1 SELECT基本语法 138
6.2 单表查询 139
6.2.1 查询所有字段 139
6.2.2 查询指定字段 140
6.2.3 根据条件查询 141
6.2.4 分组查询 147
6.2.5 HAVING查询 150
6.2.6 排序查询 150
6.2.7 LIMIT限制查询数量 151
6.2.8 其他查询 153
6.3 多表查询 156
6.3.1 内连接查询 156
6.3.2 外连接查询 159
6.4 子查询 160
6.4.1 通过比较运算符查询 161
6.4.2 通过IN查询 161
6.4.3 通过EXISTS查询 162
6.4.4 通过ALL和ANY查询 163
6.5 正则表达式查询 164
6.5.1 常用的匹配字符 164
6.5.2 匹配特定字符和字符串 164
6.5.3 匹配指定的字符 165
6.5.4 匹配指定字符串 166
6.5.5 其他匹配内容 166
6.6 添加数据 168
6.6.1 插入单条记录 168
6.6.2 插入多条记录 170
6.6.3 将A表数据插入B表 171
6.6.4 Workbench执行添加操作 172
6.7 更新数据 173
6.7.1 UPDATE语句更新记录 174
6.7.2 Workbench工具更新记录 175
6.8 删除数据 176
6.9 实战——实现对鲜花数据库的操作 177
6.10 本章习题 179
第7章 MySQL编程 183
7.1 MySQL语言编程 184
7.2 常量 184
7.3 变量 187
7.3.1 用户变量 187
7.3.2 系统变量 189
7.3.3 系统变量应用 191
7.4 运算符 194
7.4.1 算术运算符 194
7.4.2 比较运算符 195
7.4.3 逻辑运算符 204
7.4.4 位运算符 206
7.4.5 运算符的优先级 209
7.5 控制语句 209
7.5.1 条件语句 210
7.5.2 循环语句 212
7.6 实战——查询水果成熟季节 214
7.7 本章习题 215
第8章 MySQL数据库中的内部函数 217
8.1 字符串函数 218
8.1.1 常见的字符串函数 218
8.1.2 获取字符和字符串长度 219
8.1.3 合并多个字符串 220
8.1.4 截取指定位置的字符串 221
8.1.5 字母的大小写转换 222
8.1.6 删除空格和指定字符 223
8.1.7 替换字符串 225
8.1.8 其他基本操作 226
8.2 数学函数 228
8.2.1 常见的数学函数 229
8.2.2 圆的周长和面积 230
8.2.3 正弦和余弦计算 230
8.2.4 正切和余切计算 231
8.2.5 幂的运算函数 232
8.3 日期和时间函数 232
8.3.1 常见的日期和时间函数 233
8.3.2 获取当前日期和时间 234
8.3.3 获获取星期几的函数 234
8.3.4 获取月份的函数 235
8.3.5 获取时间的函数 235
8.3.6 计算日期和时间 236
8.3.7 格式化日期和时间 238
8.4 信息函数 240
8.5 加密函数 241
8.5.1 常见的加/解密函数 241
8.5.2 MD5(str)进行加密 242
8.5.3 PASSWORD(str)加密 243
8.6 其他函数 243
8.7 实战——随机生成整数 244
8.8 实战——fileinfo表数据的基本操作 245
8.9 本章习题 248
第9章 存储过程、函数与触发器 251
9.1 存储过程 252
9.1.1 存储过程语法 252
9.1.2 创建存储过程 253
9.1.3 调用存储过程 256
9.1.4 查看存储过程 257
9.1.5 修改存储过程 260
9.1.6 删除存储过程 261
9.2 实战——存储过程中使用循环 262
9.3 自定义函数 263
9.3.1 创建自定义函数 264
9.3.2 调用自定义函数 265
9.3.3 查看自定义函数 266
9.3.4 修改自定义函数 266
9.3.5 删除自定义函数 267
9.3.6 自定义函数与内部函数 267
9.4 触发器 268
9.4.1 创建和使用触发器 268
9.4.2 删除触发器 271
9.4.3 查看触发器 271
9.5 实战——对数据库表添加和使用触发器 273
9.6 本章习题 275
第10章 视图与索引 279
10.1 视图 280
10.1.1 视图 280
10.1.2 创建视图 280
10.2 视图数据操作 284
10.2.1 可更新的视图 284
10.2.2 插入数据 285
10.2.3 修改数据 286
10.2.4 删除数据 287
10.3 视图操作 288
10.3.1 修改视图 288
10.3.2 查看视图 289
10.3.3 删除视图 290
10.4 实战——图书视图管理 290
10.5 索引简介 293
10.5.1 索引的含义和特点 293
10.5.2 索引的分类 294
10.5.3 索引的设计原则 295
10.6 索引的操作 296
10.6.1 创建表的时候创建索引 296
10.6.2 在已经存在的表上创建索引 301
10.6.3 用ALTER TABLE语句来创建索引 303
10.6.4 删除索引 304
10.7 实战——索引综合应用 305
10.8 本章习题 310
第11章 数据备份与还原 313
11.1 数据备份与还原基础 314
11.1.1 数据库备份基础 314
11.1.2 常用备份 315
11.2 表备份 316
11.3 自动备份 319
11.4 完全备份 320
11.4.1 mysqldump简介 320
11.4.2 mysqldump备份 322
11.4.3 文件还原 326
11.4.4 mysqldump迁移数据 329
11.4.5 导出文本文件 329
11.5 表维护 332
11.5.1 表维护和崩溃恢复 332
11.5.2 myisamchk工具 332
11.5.3 myisamchk选项 333
11.5.4 表的检查 335
11.5.5 myisamchk内存使用 337
11.5.6 崩溃恢复 338
11.5.7 检查MyISAM表的错误 338
11.5.8 修复表 339
11.5.9 表优化 341
11.6 实战——商店数据库的备份和还原 341
11.7 本章习题 344
第12章 MySQL用户权限管理 347
12.1 授权管理表 348
12.1.1 MySQL数据库 348
12.1.2 mysql.user表 349
12.1.3 mysql.db表 352
12.1.4 mysql.tables_priv表 353
12.1.5 mysql.columns_priv表 354
12.1.6 mysql.procs_priv表 355
12.2 用户管理 355
12.2.1 用户登录 356
12.2.2 用户退出 357
12.2.3 添加用户 358
12.2.4 删除用户 361
12.2.5 修改密码 362
12.3 权限管理 365
12.3.1 工作原理 365
12.3.2 分配权限 367
12.3.3 取消权限 369
12.3.4 查看权限 370
12.4 Workbench工具创建用户 371
12.5 实战——操作user表中的用户 374
12.6 本章习题 375
第13章 MySQL的性能优化 379
13.1 优化概述 380
13.2 优化SQL语句 382
13.2.1 EXPLAIN语句 382
13.2.2 优化索引 384
13.2.3 优化ORDER BY 387
13.2.4 优化GROUP BY 389
13.2.5 优化LIMIT 391
13.2.6 优化子查询 391
13.2.7 优化查询基本原则 391
13.2.8 优化其他执行语句 392
13.3 优化数据库结构 393
13.3.1 优化字段类型 394
13.3.2 优化字符编码 394
13.3.3 适当进行拆分 395
13.3.4 适当增加冗余 395
13.3.5 优化数据库表 395
13.4 优化MySQL服务器 397
13.5 本章习题 398
第14章 MySQL日志文件管理 401
14.1 日志文件管理 402
14.2 错误日志 403
14.2.1 启用和设置错误日志 403
14.2.2 查看错误日志 403
14.2.3 删除错误日志 404
14.3 二进制日志 404
14.3.1 启用二进制日志 405
14.3.2 查看二进制日志 406
14.3.3 清理二进制日志 407
14.3.4 恢复二进制日志 408
14.4 慢查询日志 409
14.4.1 启用慢查询日志 409
14.4.2 操作慢查询日志 410
14.5 通用查询日志 410
14.6 MySQL Workbench工具操作日志 413
14.7 本章习题 413
第15章 博客文章管理系统 417
15.1 系统概述 418
15.1.1 开发背景 418
15.1.2 系统功能 418
15.2 数据库设计 419
15.2.1 设计表 419
15.2.2 设计外键 421
15.2.3 设计索引 421
15.2.4 设计存储过程 422
15.3 系统实现 423
15.3.1 搭建三层框架 423
15.3.2 添加引用和内容 425
15.3.3 MySQLHelper类 426
15.4 博客文章首页 428
15.4.1 界面效果 428
15.4.2 代码实现 429
15.4.3 文章详细 432
15.4.4 添加评论 434
15.5 登录模块 436
15.6 注册模块 438
15.7 博客文章操作 440
15.7.1 管理文章 440
15.7.2 发表文章 444
15.7.3 浏览文章 445
参考答案 447