第I部分 MySQL和关系模型 3
第1章 MySQL入门 3
1.1 人们如何使用数据库 3
1.2 数据库比文件好的原因 11
1.3 数据库不是万灵药 13
1.4 为什么选择MySQL 13
1.5 MySQL的历史 14
2.1 下载安装文件 16
第2章 安装MySQL 16
2.2 用Linux RPM安装 17
2.3 Windows安装程序 18
2.4 编译源代码 20
2.5 授予权限 20
第3章 同MySQL交互 22
3.1 TCP/IP上的客户机/服务器 22
3.2 命令行实用程序 23
3.3 图形客户机 24
3.5 Web接口 26
3.4 ODBC 26
第4章 数据库概念 28
4.1 历史 28
4.2 术语 29
4.3 数据库管理系统 30
4.4 平面文件数据库 31
4.5 层次化数据库 31
4.6 关系型数据库 33
4.7 对象数据库 34
4.8 对象关系型数据库 35
第5章 关系模型 36
5.1 关系代数 36
5.2 表、行和列 36
5.3 键 38
5.4 关系 40
5.5 关系运算 41
5.6 MySQL是否为真正的RDBMS 47
6.1 SQL是第4代语言 48
第6章 结构化查询语言 48
6.2 数据定义 49
6.3 插入行 51
6.4 更新行 52
6.5 删除行 52
6.6 查询 52
6.7 联接 53
6.9 分组 56
6.8 排序 56
6.10 限制 57
6.11 更改表 58
第7章 数据库设计 59
7.1 需求规格 59
7.2 设计规格 63
7.3 制图 64
7.4 建模语言 66
7.5 ER图 67
7.7 实现设计 68
7.6 创建图 68
7.8 测试 71
7.9 规划数据库生命周期 71
第8章 正规化 72
8.1 为什么要正规化 72
8.2 第一范式 73
8.3 第二范式 75
8.4 第三范式 77
8.5 Boyce-Codd范式 78
8.6 第四范式 79
8.7 反正规化 81
第9章 事务处理和并发性 83
9.1 并发性 83
9.2 事务 84
9.3 锁定 87
9.4 序列 89
第Ⅱ部分 MySQL参考 93
第10章 数据类型、变量和表达式 93
10.1 数据类型 93
10.2 变量 96
10.3 运算符 97
10.4 表达式 104
10.5 名称中的空格 105
第11章 列和索引类型 106
11.1 数值 106
11.2 字符串 109
11.3 时间值 111
11.4 列类型别名 113
11.5 索引 114
12.1 调试与配置 116
第12章 内建函数 116
12.2 流程控制 119
12.3 分组 122
12.4 数学运算 126
12.5 字符串 133
12.6 时间 147
12.7 杂项 159
12.8 过程 161
13.1 注释 163
第13章 SQL语句 163
13.2 Alter Table语句 164
13.3 Analyze Table语句 168
13.4 Backup Table语句 168
13.5 Begin[WORK]语句 169
13.6 Change Master语句 169
13.7 Check Table语句 170
13.8 Commit语句 171
13.9 Create Database语句 171
13.12 Create Table语句 172
13.10 Create Function语句 172
13.11 Create Index语句 172
13.13 Delete语句 178
13.14 Describe语句 179
13.15 Drop Database语句 180
13.16 Drop Function语句 181
13.17 Drop Index语句 181
13.18 Drop Table语句 181
13.19 Explain语句 182
13.20 Flush语句 183
13.21 Grant语句 184
13.22 Insert语句 186
13.23 Kill语句 187
13.24 Lock Tables语句 188
13.25 Load Data Infile语句 189
13.26 Load Table语句 190
13.29 Rename Table语句 191
13.28 Purge Master Logs语句 191
13.27 Optimize Table语句 191
13.30 Repair Table语句 192
13.31 Replace语句 192
13.32 Reset Master语句 193
13.33 Reset Slave语句 193
13.34 Restore Table语句 193
13.35 Revoke语句 193
13.36 Rollback语句 194
13.37 Select语句 194
13.38 Set语句 199
13.39 Set Transaction语句 202
13.40 Show Columns语句 203
13.41 Show Create Table语句 203
13.42 Show Databases语句 204
13.43 Show Grants语句 204
13.44 Show Index语句 205
13.46 Show Processlist语句 206
13.47 Show Status语句 206
13.45 Show Logs语句 206
13.48 Show Table Status语句 208
13.49 Show Tables语句 209
13.50 Show Variables语句 210
13.51 Slave语句 213
13.52 Truncate语句 214
13.53 Unlock Tables语句 214
13.54 Update语句 214
13.55 Use语句 215
14.1 环境变量 216
第14章 命令行实用程序 216
14.2 选项文件 217
14.3 comp_err 218
14.4 isamchk 218
14.5 make_binary_distribution 219
14.6 msql2mysql 219
14.7 my_print_defaults 219
14.8 myisamchk 220
14.9 myisamlog 225
14.10 myisampack 227
14.11 mysql 228
14.12 mysql_install_db 238
14.13 mysqlaccess 238
14.14 mysqladmin 239
14.15 mysqlbinlog 245
14.16 mysqlbug 247
14.17 mysqlc 247
14.18 mysqld 247
14.19 mysqld-max 260
14.21 mysqld-opt 261
14.22 mysqld_multi 261
14.20 mysqld-nt 261
14.23 mysqldump 263
14.24 mysqldumpslow 269
14.25 mysqlhotcopy 271
14.26 mysqlimport 273
14.27 mysqlshow 276
14.29 perror 278
14.28 pack_isam 278
14.30 replace 279
14.31 safe_mysqld 280
第15章 C API 282
15.1 类型 282
15.2 客户机函数 286
15.3 数组函数 312
15.4 字符集函数 313
15.5 文件函数 315
15.6 错误函数 318
15.7 散列函数 319
15.8 列表函数 320
15.9 内存管理函数 320
15.10 选项函数 322
15.11 密码函数 322
15.12 字串函数 322
15.13 线程函数 325
16.1 准备编写程序 329
第16章 C API编程 329
第Ⅲ部分 编写MySQL客户机程序 329
16.2 获取数据 331
16.3 处理数据 334
第17章 JDBC 336
17.1 准备编写程序 336
17.2 获取数据 341
17.3 处理数据 343
第18章 VBScript及ODBC 346
18.1 准备编写程序 346
13.2 获取数据 348
18.3 处理数据 350
第19章 PHP 354
19.1 准备编写程序 354
19.2 获取数据 355
19.3 处理数据 358
第20章 PERL 361
20.1 准备编写程序 361
20.2 获取数据 362
20.3 处理数据 364
第21章 PYTHON 366
21.1 准备编写程序 366
21.2 获取数据 367
21.3 处理数据 369
第22章 MySQL++ API 371
22.1 准备编写程序 371
22.2 获取数据 372
22.3 处理数据 374
23.2 使数据可用 379
23.1 职责 379
第Ⅳ部分 高级主题 379
第23章 数据库管理 379
23.3 维护数据库完整性 380
23.4 准备应对灾难 381
23.5 支持用户 382
23.6 编写并强制执行标准 383
第24章 物理存储 384
24.1 数据库/表模型 384
24.3 表的类型 385
24.2 专用分区 385
24.4 列 391
24.5 表锁 393
24.6 索引 393
24.7 文件描述符 395
24.8 系统内存 396
24.9 日志文件 396
第25章 灾难应对 401
25.1 检查与修复表 401
25.2 备份与恢复 403
第26章 优化 410
26.1 优化之前 410
26.2 瓶颈 411
26.3 设计优化 415
26.4 应用程序内部的优化 416
26.5 优化查询 417
26.6 优化SQL语句 421
26.8 调节服务器配置 422
26.7 维护表 422
26.9 重新编译MySQL 424
第27章 安全性 428
27.1 权限方案 428
27.2 设置权限 434
27.3 确保安全性 436
第28章 转换 439
28.1 切换数据库服务器 439
28.2 把不支持的特性转化到MySQL中 440
28.3 使用ANSI模式 445
28.4 独一无二的MySQL特性 446
第29章 分布式数据库 452
29.1 分布式数据库的概念 452
29.2 被延迟的同步 455
29.3 MySQL的复制功能 457
29.4 运行多个服务器 462
第30章 对象映射 465
30.1 面向对象模型 465
30.2 序列化对象 467
30.3 对象-关系映射 470
第31章 添加功能 481
31.1 调试库 481
31.2 添加字符集 484
31.3 函数 489
31.4 过程 492
附录A 在线资源 494
A.1 官方邮件列表 494
A.2 邮件列表归档 495
A.3 Web站点 496
附录B 进一步阅读 498
附录C 商务问题与法律问题 499
C.1 MySQL的许可证 499
C.2 GNU通用公共许可证 499
C.3 稳定性 504
C.4 支持 506
附录D 保留字 507
附录E MySQL的错误码 511
附录F SQL样式指南 521
F.1 一般样式 521
F.2 标识符 521
F.3 表 522
F.4 语句 522
附录G 数据库设计示例 523
G.1 示意图 523
G.2 SQL模式 524