标题：MYSQL Cookbook 中文版 （第2版）
基本信息
原书名： MySQL Cookbook  原出版社： O'Reilly Media, Inc.
作者： (美)Paul DuBois  
译者： 瀚海时光团队
丛书名： 电子工业出版社O'REILLY系列丛书
出版社：电子工业出版社
ISBN：9787121059933
上架时间：2008-4-21
出版日期：2008 年3月
开本：16开
页码：948
版次：1-1
内容简介
本书为各个层次的、没有时间和精力来从头解决mysql问题的用户提供了大量简练、精辟的代码段和可用的示例，每节都阐述了代码应该如何工作及原因所在。本书在目前仍然广为流行的mysql 4.1的基础上加入了mysql 5.0的内容及它强大的新特性。读者将掌握用mysql客户端程序执行sql查询的方法，以及通过api编写与mysql服务器交互程序的方法。书中有大量使用perl、php、python、java甚至ruby来检索并显示数据的新示例，还增加了子查询、视图、存储过程、触发器和事件等内容。
本书适合于所有从事数据库技术开发的相关人员阅读，是mysql开发人员案头必备之书。  
作者简介
Paul DuBois是MySQL在线参考手册的第一批贡献者之一，这是在20世纪90年代后期MySQL的开放年代支持管理员和开发者的一个文档项目。他已经撰写了多本关于MySQL的著作，包括《MySQL Cookbook 第1版》。 
目录
序言
第1章：使用mysql客户端程序
1.0 引言
1.1 建立mysql用户账号
1.2 创建数据库和样表
1.3 启动和停止mysql
1.4 使用可选项文件来指定连接参数
1.5 保护选项文件以阻止其他用户读取
1.6 混合使用命令行和选项文件参数
1.7 找不到mysql时该怎么做
1.8 发起sql语句
1.9 取消一条部分输入的语句
1.10 重复和编辑sql语句
1.11 自动完成数据库名和表名
1.12 让mysql从文件中读取语句
1.13 让mysql从其他程序读取语句
1.14 一行输入sql
1.15 使用拷贝粘贴作为mysql输入源
1.16 预防查询输出超出屏幕范围
1.17 发送查询输出到文件或程序
.　1.18 选择表格或制表符定界的查询输出格式
1.19 指定任意的输出列分隔符
1.20 生成html或xml输出
1.21 在查询输出中禁止列头部
1.22 使长输出行更具可读性
1.23 控制mysql的繁冗级别
1.24 记录交互式的mysql会话
1.25 以之前执行的语句创建mysql脚本
1.26 在sql语句中使用用户自定义的变量
1.27 为查询输出行计数
1.28 将mysql用作计算器
1.29 在shell脚本中使用mysql
第2章：编写基于mysql的程序
2.0 引言
2.1 连接、选择数据库及断开连接
2.2 查错
2.3 编写库文件
2.4 发起语句并检索结果
2.5 处理语句中的特殊字符和null值
2.6 处理标识符中特殊字符
2.7 识别结果集中的null值
2.8 获取连接参数的技术
2.9 结论和建议
第3章：从表中查询数据
3.0 引言
3.1 指定查询列/从指定列中查询
3.2 指定查询行
3.3 格式化显示查询结果
3.4 使用列别名来简化程序
3.5 合并多列来构建复合值
3.6 where表达式中的列别名
3.7 调试比较表达式
3.8 使查询结果唯一化
3.9 如何处理null 值
3.10 在用户程序中使用null作为比较参数
3.11 结果集排序
3.12 使用视图来简化查询
3.13 多表查询
3.14 从查询结果集头或尾取出部分行
3.15 在结果集中间选取部分行
3.16 选择合适的limit参数
3.17 当limit需要“错误”的排列顺序时做什么
3.18 从表达式中计算limit值
第4章：表管理
4.0 引言
4.1 克隆表
4.2 将查询结果保存到表中
4.3 使用临时表
4.4 检查或改变某个表的存储引擎
4.5 生成唯一的表名
第5章：与字符串共舞
5.0 引言
5.1 字符串属性
5.2 选择字符串的数据类型
5.3 正确设置客户端连接的字符集
5.4 串字母
5.5 检查一个字符串的字符集或字符排序
5.6 改变字符串的字符集或字符排序
5.7 更改字符串字母的大小写
5.8 更改字符串大小写失败的情况
5.9 控制字符串比较中的大小写敏感
5.10 使用sql模式进行模式匹配
5.11 使用正则表达式进行模式匹配
5.12 模式匹配中的大小写问题
5.13 分割或者串联字符串
5.14 查询子串
5.15 使用fulltext查询
5.16 用短语来进行fulltext查询
5.17 要求或禁止fulltext搜索单词
5.18 用fulltext索引来执行词组查询
第6章：使用日期和时间
6.0 引言
6.1 选择合适的日期或者时间变量类型
6.2 修改mysql中的日期格式
6.3 设置客户端时区
6.4 获取当前日期或时间
6.5 使用timestamp来跟踪行修改时间
6.6 从日期或者时间值中分解出各部分值
6.7 合成日期或者时间值
6.8 在时间数据类型和基本单位间进行转换
6.9 计算两个日期或时间之间的间隔
6.10 增加日期或时间值
6.11 计算年龄
6.12 将一个日期和时间值切换到另一个时区
6.13 找出每月的第一天，最后一天或者天数
6.14 通过子串替换来计算日期
6.15 计算某个日期为星期几
6.16 查出给定某周的某天的日期
6.17 执行闰年计算
6.18 接近但不是iso格式的日期格式
6.19 将日期或时间当成数值
6.20 强制mysql将字符串当作时间值
6.21 基于时间特性来查询行
第7章：排序查询结果
7.0 引言
7.1 使用order by命令排序查询结果
7.2 使用表达式排序
7.3 显示一组按照其它属性排序的值
7.4 字符串排序的大小写区分控制
7.5 基于日期的排序
7.6 按日历排序
7.7 按周历排序
7.8 按时钟排序
7.9 按数据列的子串排序
7.10 按固定长度的子串排序
7.11 按可变长度的子串排序
7.12 按域名顺序排列主机名
7.13 按照数字顺序排序点分式ip地址
7.14 将数值移动到排序结果的头部或尾部
7.15 按照用户定义排序
7.16 排序枚举数值
第8章：生成摘要
8.0 引言
8.1 使用count函数生成摘要
8.2 使用min()和max()函数生成摘要
8.3 使用sum()和avg()函数生成摘要
8.4 使用distinct函数消除重复
8.5 查找数值相关的最大值和最小值
8.6 控制min()函数和max()函数的字符串大小写区分
8.7 将摘要划分为子群
8.8 摘要与空值
8.9 使用确定的特性选择组群
8.10 使用计数确定数值是否唯一
8.11 使用表达式结果分组
8.12 分类无类别数据
8.13 控制摘要显示顺序
8.14 查找最小或最大的摘要数值
8.15 基于日期的摘要
8.16 同时使用每一组的摘要和全体的摘要
8.17 生成包括摘要和列表的报告
第9章：获取和使用元数据
9.0 引言
9.1 获取受语句影响的数据行数目
9.2 获取设置元数据的结果
9.3 确定一条语句是否生成了结果集
9.4 使用元数据来格式化查询输出
9.5 列举或检查数据库或表的扩展
9.6 访问表数据列定义
9.7 取得enum和set数据列信息
9.8 在应用程序中使用表结构信息
9.9 获取服务器元数据
9.10 编写适合mysql服务器版本的应用程序
9.11 确定默认数据库
9.12 监测mysql服务器
9.13 确定服务器支持哪个存储引擎
第10章：数据导入导出
10.0 引言
10.1 使用load data和mysqlimport导入数据
10.2 指定数据文件位置
10.3 指定数据文件的结构
10.4 处理引号和特殊字符
10.5 导入csv文件
10.6 读取不同操作系统的文件
10.7 处理重复的键值
10.8 获取关于错误输入数据的诊断信息
10.9 跳过数据文件行
10.10 指定输入列顺序
10.11 在插入输入值之前对数据文件进行预处理
10.12 忽略数据文件列
10.13 从mysql中导出查询结果
10.14 将表导出为文本文件
10.15 以sql格式导出表内容或定义
10.16 将表或数据库拷贝到另一个服务器
10.17 编写你自己的导出程序
10.18 将数据文件从一种格式转化为另一种格式
10.19 提取和重排数据文件列
10.20 使用sql模式来控制错误的输入数据处理
10.21 验证并转换数据
10.22 使用模式匹配来验证数据
10.23 使用模式来匹配广泛的内容类型
10.24 使用模式来匹配数值
10.25 使用模式来匹配日期或时间
10.26 使用模式来匹配e-mail地址或url
10.27 使用表元数据来验证数据
10.28 使用一个查找表来验证数据
10.29 将两个数字的年份值转化为四位形式
10.30 验证日期和时间合法性
10.31 编写时间处理工具
10.32 使用不完整的日期
10.33 导入非iso格式日期值
10.34 使用非iso格式导出日期值
10.35 导入和导出null值
10.36 根据数据文件猜测表结构
10.37 在mysql和access之间交换数据
10.38 在mysql和microsoft excel之间交换数据
10.39 将输出结果导出为xml
10.40 将xml导入mysql
10.41 尾声
第11章：生成和使用序列
11.0 引言
11.1 创建一个序列列并生成序列值
11.2 为序列列选择数据类型
11.3 序列生成的行删除的效果
11.4 查询序列值
11.5 对一个已有的序列进行重新计数
11.6 扩展序列列的取值范围
11.7 序列顶部数值的再使用
11.8 确保各行按照给定顺序重编号
11.9 从某个特定值开始一个序列
11.10 序列化一个未序列的表
11.11 使用auto_increment栏来创建多重序列
11.12 管理多重并发auto_increment数值
11.13 使用auto_increment值将表进行关联
11.14 将序列生成器用作计数器
11.15 创建循环序列
11.16 按行顺序输出数列查询
第12章：使用多重表
12.0 引言
12.1 在表中找到与另一个表中的行相匹配的行
12.2 查找与其他表不匹配的行
12.3 将表与自身进行比较
12.4 产生主从列表和摘要
12.5 枚举多对多的关系
12.6 查找每组行中含有最大或最小值的行
12.7 计算队伍排名
12.8 使用连接补全或识别列表的缺口
12.9 计算连续行的差值
12.10 发现累积和与动态均值
12.11 使用连接控制查询输出的顺序
12.12 在单个查询中整合几个结果集
12.13 识别并删除失配或独立行
12.14 为不同数据库间的表执行连接
12.15 同时使用不同的mysql服务器
12.16 在程序中引用连接的输出列名称
第13章：统计技术
13.0 引言
13.1 计算描述统计
13.2 分组描述统计
13.3 产生频率分布
13.4 计数缺失值
13.5 计算线性回归和相关系数
13.6 生成随机数
13.7 随机化行集合
13.8 从行集合中随机选择条目
13.9 分配等级
第14章：处理重复项
14.0 引言
14.1 防止在表中发生重复
14.2 处理向表中装载行时出现的重复错误
14.3 计数和识别重复项
14.4 从表中消除重复项
14.5 从自连接的结果中消除重复
第15章：执行事务
15.0 引言
15.1 使用事务存储引擎
15.2 使用sql执行事务
15.3 在程序中执行事务
15.4 在perl程序中使用事务
15.5 在ruby程序中使用事务
15.6 在php程序中使用事务
15.7 在python程序中使用事务
15.8 在java程序中使用事务
15.9 使用事务的替代方法
第16章：使用存储例程、触发器和事件
16.0 引言
16.1 创建复合语句对象（此节翻译有误）
16.2 使用存储函数封装计算
16.3 使用存储过程来“返回”多个值
16.4 用触发器来定义动态的默认列值
16.5 为其他日期和时间类型模拟timestamp属性
16.6 使用触发器记录表的变化
16.7 使用事件调度数据库动作
第17章：关于web应用中mysql的介绍
17.0 引言
17.1 web页面产生的基本原则
17.2 使用apache运行web脚本
17.3 使用tomcat运行web脚本
17.4 在web输出中编码特殊字符
第18章：在web页面中混合查询结果
18.0 引言
18.1 以段落文本显示查询结果
18.2 以列表形式显示查询结果
18.3 以表格形式显示查询结果
18.4 将查询结果显示为超链接
18.5 根据数据库内容中创建导航索引
18.6 存储图片或其他二进制数据
18.7 检索图片或其他二进制数据
18.8 提供标语广告
18.9 提供可下载的查询结果
18.10 使用模板系统生成web页面
第19章：用mysql处理web输入
19.0 引言
19.1 编写脚本生成web表单
19.2 根据数据库内容构建单取表单元素
19.3 根据数据库内容构建多取表单元素
19.4 将一条数据库记录导入表单
19.5 收集web输入
19.6 验证web输入
19.7 将web输入存入数据库
19.8 处理文件上传
19.9 执行搜索并显示结果
19.10 生成上一页和下一页链接
19.11 生成点击排序的表格头单元
19.12 web页面访问计数
19.13 web页面访问日志
19.14 使用mysql存储apache日志
第20章：使用基于mysql的web会话管理
20.0 引言
20.1 在perl应用程序中使用基于mysql的会话
20.2 在ruby应用程序中使用基于mysql的存储
20.3 在php会话管理器中使用基于mysql的存储
20.4 在tomcat中为会话支持存储使用mysql
附录a：获取mysql软件
附录b：从命令行执行程序
附录c：jsp和tomcat知识的初步内容
附录d：参考资料
索引