目录
         第1章 MySQL入门  1
         1.1 MySQL的用途  1
         1.2 示例数据库  3
         1.2.1 美史联盟项目  4
         1.2.2 成绩考评项目  5
         1.2.3 如何运用示例数据库  5
         1.3 基本数据库术语  6
         1.3.1 结构术语  6
         1.3.2 查询语言术语  8
         1.3.3 MySQL的体系结构术语  8
         1.4 MySQL教程  9
         1.4.1 获取示例数据库发行包  10
         1.4.2 基本配置要求  10
         1.4.3 建立和断开MySQL服务器连接  11
         1.4.4 执行SQL语句  13
         1.4.5 创建数据库  15
         1.4.6 创建表  15
         1.4.7 添加新行  29
         1.4.8 重置sampdb数据库  32
         1.4.9 检索信息  33
         1.4.10 删除或更新已有行  56
         1.5 mysql交互技巧  58
         1.5.1 简化连接过程  58
         1.5.2 在调用命令时减少打字输入  60
         1.6 何去何从  63
         第2章 使用SQL管理数据  64
         2.1 服务器的SQL模式  65
         2.2 MySQL的标识符语法和命名规则  66
         2.3 SQL语句的大小写规则  67
         2.4 字符集支持  68
         2.4.1 指定字符集  69
         2.4.2 确定可用字符集和当前设置  70
         2.4.3 Unicode支持  71
         2.5 数据库的选择、创建、删除和更改  72
         2.5.1 选择数据库  72
         2.5.2 创建数据库  72
         2.5.3 删除数据库  73
         2.5.4 更改数据库  73
         2.6 表的创建、删除、索引和更改  73
         2.6.1 存储引擎的特性  73
         2.6.2 创建表  77
         2.6.3 删除表  84
         2.6.4 索引表  84
         2.6.5 更改表结构  88
         2.7 获取数据库元数据  90
         2.7.1 使用SHOW语句获取元数据  90
         2.7.2 借助INFORMATION_SCHEMA获取元数据  92
         2.7.3 从命令行获取元数据  94
         2.8 使用连接实现多表检索  95
         2.8.1 内连接  96
         2.8.2 对被连接表里的列引用进行限定  97
         2.8.3 左(外)连接和右(外)连接  97
         2.9 使用子查询实现多表检索  100
         2.9.1 带关系比较运算符的子查询  101
         2.9.2 IN和NOT IN子查询  102
         2.9.3 ALL、ANY和SOME子查询  103
         2.9.4 EXISTS和NOT EXISTS子查询  103
         2.9.5 相关子查询  104
         2.9.6 FROM子句里的子查询  104
         2.9.7 将子查询改写为连接  104
         2.10 使用UNION实现多表检索  106
         2.11 多表删除和更新  108
         2.12 事务处理  110
         2.12.1 利用事务保证语句安全执行  111
         2.12.2 使用事务保存点  114
         2.12.3 事务隔离  114
         2.13 外键和引用完整性  116
         2.14 使用FULLTEXT搜索  121
         2.14.1 自然语言FULLTEXT搜索  122
         2.14.2 布尔模式的全文搜索  124
         2.14.3 查询扩展全文搜索  125
         2.14.4 配置全文搜索引擎  126
         第3章 数据类型  127
         3.1 数据值类别  128
         3.1.1 数值  128
         3.1.2 字符串值  129
         3.1.3 时态(日期/时间)值  136
         3.1.4 空间值  136
         3.1.5 布尔值  136
         3.1.6 NULL值  136
         3.2 MySQL数据类型  137
         3.2.1 数据类型概述  137
         3.2.2 表定义里的特殊列类型  138
         3.2.3 指定列的默认值  139
         3.2.4 数字数据类型  140
         3.2.5 字符串数据类型  145
         3.2.6 时态(日期/时间)数据类型  156
         3.3 MySQL如何处理无效数据值  163
         3.4 处理序列  164
         3.4.1 通用的AUTO_INCREMENT属性  164
         3.4.2 存储引擎特有的AUTO_INCREMENT属性  166
         3.4.3 使用AUTO_INCREMENT列需要考虑的问题  168
         3.4.4 AUTO_INCREMENT列的使用提示  168
         3.4.5 在无AUTO_INCREMENT的情况下生成序列  170
         3.5 表达式计算和类型转换  171
         3.5.1 编写表达式  172
         3.5.2 类型转换  177
         3.6 选择数据类型  183
         3.6.1 列要存放什么类型的值  184
         3.6.2 所有值是否都在某个特定的区间内  186
         第4章  视图和存储程序  188
         4.1 使用视图  189
         4.2 使用存储程序  191
         4.2.1 复合语句和语句分隔符  191
         4.2.2 存储函数和存储过程  193
         4.2.3 触发器  196
         4.2.4 事件  197
         4.3 视图和存储程序的安全性  199
         第5章  查询优化  200
         5.1 使用索引  200
         5.1.1 索引的优点  201
         5.1.2 索引的代价  203
         5.1.3 挑选索引  203
         5.2 MySQL查询优化程序  206
         5.2.1 查询优化程序的工作原理  207
         5.2.2 使用EXPLAIN检查优化程序的操作  209
         5.3 选择利于高效查询的数据类型  214
         5.4 选择利于高效查询的表存储格式  216
         5.5 高效加载数据  217
         5.6 调度、锁定和并发  219
         第6章  MySQL程序设计入门  221
         6.1 为何要自己编写MySQL程序  221
         6.2 MySQL提供的API  223
         6.2.1 C语言API  224
         6.2.2 Perl语言DBI API  224
         6.2.3 PHP语言API  225
         6.3 选择API  226
         6.3.1 执行环境  227
         6.3.2 性能  227
         6.3.3 开发时间  228
         6.3.4 可移植性  228
         第7章  用C语言编写MySQL程序  230
         7.1 编译和链接客户端程序  231
         7.2 连接服务器  233
         7.3 出错处理和命令选项处理  236
         7.3.1 出错检查  236
         7.3.2 实时获取连接参数  239
         7.3.3 把选项处理整合进客户端程序  248
         7.4 处理SQL语句  252
         7.4.1 处理那些修改行的语句  253
         7.4.2 处理那些返回结果集的语句  254
         7.4.3 通用的语句处理器  256
         7.4.4 另一种语句处理方法  257
         7.4.5 mysql_store_result()与mysql_use_result()的对比  258
         7.4.6 使用结果集元数据  260
         7.4.7 对特殊字符和二进制数据进行编码  264
         7.5 交互式语句执行程序  267
         7.6 编写支持SSL的客户端程序  268
         7.7 一次执行多条语句  272
         7.8 使用服务器端预处理语句  273
         7.9 使用预处理CALL支持  282
         第8章  用Perl DBI编写MySQL程序  286
         8.1 Perl脚本的特点  286
         8.2 Perl DBI概述  287
         8.2.1 DBI数据类型  287
         8.2.2 一个简单的DBI脚本  288
         8.2.3 出错处理  291
         8.2.4 处理那些修改行的语句  294
         8.2.5 处理那些返回结果集的语句  295
         8.2.6 在语句串里引用特殊字符  302
         8.2.7 占位符与预处理语句  305
         8.2.8 把查询结果绑定到脚本变量  307
         8.2.9 指定连接参数  307
         8.2.10 调试  310
         8.2.11 使用结果集元数据  312
         8.2.12 执行事务  316
         8.3 DBI脚本实践  317
         8.3.1 生成美史联盟成员名录  317
         8.3.2 发送成员资格更新通知  322
         8.3.3 编辑美史联盟成员条目  326
         8.3.4 寻找志趣相投的联盟成员  331
         8.3.5 把美史联盟成员名录放到网上  332
         8.4 使用DBI来开发Web应用程序  334
         8.4.1 配置Apache服务器来处理CGI脚本  335
         8.4.2 CGI.pm模块简介  336
         8.4.3 从Web脚本连接MySQL服务器  342
         8.4.4 基于Web的数据库浏览器  343
         8.4.5 成绩考评项目:分数浏览器  347
         8.4.6 美史联盟:搜索志趣相投的成员  350
         第9章  用PHP语言编写MySQL程序  354
         9.1 PHP概述  355
         9.1.1 一个简单的PHP脚本  357
         9.1.2 利用PHP库文件实现代码封装  359
         9.1.3 简单的数据检索页面  363
         9.1.4 处理语句结果  365
         9.1.5 测试查询结果里的NULL值  368
         9.1.6 使用预处理语句  369
         9.1.7 利用占位符来处理数据引号问题  369
         9.1.8 出错处理  371
         9.2 PHP脚本实战  372
         9.2.1 一个在线录入分数的应用程序  373
         9.2.2 创建交互式的在线测验  382
         9.2.3 在线编辑美史联盟成员信息  386
         第10章 MySQL管理简介  393
         10.1 MySQL组件  393
         10.3 访问控制与安全性 395
         10.4 数据库维护、备份和复制 395
         第11章 MySQL数据目录 397
         11.1 数据目录位置 397
         11.2 数据目录结构 398
         11.2.1 MySQL服务器提供的数据访问方式 399
         11.2.2 数据库在文件系统里的表示 400
         11.2.3 表在文件系统里的表示 400
         11.2.4 视图和触发器在文件系统里的表示 401
         11.2.5 SQL语句与表文件操作的对应关系 401
         11.2.6 操作系统对数据库对象名字的约束 402
         11.2.7 影响表最大长度的因素 403
         11.2.8 数据目录结构对系统性能的影响 404
         11.2.9 MySQL状态文件和日志文件 405
         11.3 迁移数据目录的内容 407
         11.3.1 迁移方法 407
         11.3.2 迁移注意事项 408
         11.3.3 评估迁移带来的影响 408
         11.3.4 迁移整个数据目录 409
         11.3.5 迁移单个数据库 409
         11.3.6 迁移单个表 409
         11.3.7 迁移InnoDB系统表空间 410
         11.3.8 迁移状态文件和日志文件 410
         第12章 MySQL的基本管理 412
         12.1 保护新安装的MySQL 412
         12.1.1 为初始的MySQL账户建立密码 413
         12.1.2 为附加服务器设置密码 416
         12.2 安排MySQL服务器的启动和关闭 416
         12.2.1 在Unix里运行MySQL服务器 417
         12.2.2 在Windows里运行MySQL服务器 420
         12.2.3 指定服务器启动选项 422
         12.2.4 控制服务器的连接监听 423
         12.2.5 停止服务器 424
         12.2.6 当你无法连接服务器时重新获得对它的控制 425
         12.3 使用系统变量和状态变量 426
         12.3.1 查看和设置系统变量值 427
         12.3.2 查看状态变量值 430
         12.4 插件接口 431
         12.5 存储引擎配置 433
         12.5.1 选择存储引擎 433
         12.5.2 选择默认存储引擎 434
         12.5.3 配置InnoDB存储引擎 435
         12.6 全球化问题 440
         12.6.1 配置时区支持 440
         12.6.2 选择默认字符集和排序规则 441
         12.6.3 选择出错信息的显示语言 442
         12.6.4 选择区域设置 442
         12.7 服务器调整 442
         12.7.1 用于服务器调整的通用型系统变量 443
         12.7.2 存储引擎调整 445
         12.7.3 使用查询缓存 449
         12.7.4 硬件优化 450
         12.8 服务器日志 451
         12.8.1 出错日志 453
         12.8.2 普通查询日志 454
         12.8.3 慢查询日志 454
         12.8.4 二进制日志 455
         12.8.5 中继日志 456
         12.8.6 使用日志表 456
         12.8.7 日志管理 457
         12.9 运行多个服务器 462
         12.9.1 运行多个服务器的常见问题 462
         12.9.2 配置和编译不同的服务器 464
         12.9.3 指定启动选项的策略 465
         12.9.4 使用mysqld_multi来管理服务器 466
         12.9.5 在Windows里运行多个服务器 468
         12.9.6 运行多个服务器的客户端 469
         12.10 升级MySQL 469
         第13章 安全性与访问控制 471
         13.1 保护对MySQL文件系统的访问 472
         13.1.1 如何窃取数据 472
         13.1.2 保护MySQL安装 473
         13.2 管理MySQL用户账户 477
         13.2.1 MySQL账户的高级管理 479
         13.2.2 权限分配 482
         13.2.3 显示账户权限 490
         13.2.4 撤销权限 490
         13.2.5 更改密码或重置丢失的密码 491
         13.2.6 避免访问控制风险 491
         13.2.7 插入式身份认证和代理用户 494
         13.3 权限表结构和内容 496
         13.3.1 权限表访问范围列 498
         13.3.2 权限表权限列 498
         13.3.3 权限表身份认证列 499
         13.3.4 权限表SSL相关列 499
         13.3.5 权限表资源管理列 500
         13.4 服务器如何控制客户端访问 500
         13.4.1 访问范围列的内容 500
         13.4.2 语句访问验证 502
         13.4.3 访问范围列匹配顺序 503
         13.4.4 权限难题 503
         13.5 使用SSL建立安全连接 506
         第14章 数据库维护、备份和复制 510
         14.1 预防性维护的基本原则 510
         14.2 在服务器运行时维护数据库 511
         14.2.1 为只读或读/写访问锁定单个表 512
         14.2.2 为只读访问锁定所有数据库 514
         14.3 基本的预防性维护 514
         14.3.1 运用服务器的自动恢复功能 514
         14.3.2 制订预防性维护计划 515
         14.4 数据库备份 516
         14.4.1 存储引擎的可移植特点 517
         14.4.2 用mysqldump程序制作文本备份 518
         14.4.3 制作二进制数据库备份 521
         14.4.4 备份InnoDB表 522
         14.5 将数据库复制到另一个服务器 522
         14.5.1 使用备份文件来复制数据库 523
         14.5.2 将数据库从一个服务器复制到另一个 523
         14.6 检查和修复数据库表 524
         14.6.1 使用CHECK TABLE检查表 525
         14.6.2 使用REPAIR TABLE修复表 525
         14.6.3 使用mysqlcheck检查修复表 525
         14.7 使用备份来恢复数据 526
         14.7.1 恢复整个数据库 527
         14.7.2 恢复单个表 527
         14.7.3 重新执行二进制日志文件里的语句 528
         14.7.4 应对InnoDB的自动恢复问题 529
         14.8 设置复制服务器 530
         14.8.1 复制的工作原理 530
         14.8.2 建立主从复制关系 531
         14.8.3 二进制日志格式 533
         14.8.4 使用复制从服务器来制作备份 534
         附录A 本书所需要的各类软件 535
         附录B 数据类型参考 543
         附录C 操作符与函数参考 555
         附录D 系统变量、状态变量和用户变量参考 608
         附录E SQL语法参考 651
         附录F MySQL程序参考 721
      · · · · · ·     (
收起)