MySQL 5.1 参考手册

这是MySQL 参考手册的翻译版本,关于 MySQL 参考手册,请访问dev.mysql.com 原始参考手册为英文版,与英文版参考手册相比,本翻译版可能不是最新的。

This translation was done by MySQL partner GreatLinux, Beijing, People's Republic of China. GreatLinux Inc. 北京万里开源软件有限公司在全国范围提供 MySQL 产品相关的商务及 技术方面的咨询与支持服务。垂询请致电:8610-65694500,或发送邮件至:sales@greatlinux.com.

Copyright © 2005, 2010, Oracle and/or its affiliates. All rights reserved.

This software and related documentation are provided under a license agreement containing restrictions on use and disclosure and are protected by intellectual property laws. Except as expressly permitted in your license agreement or allowed by law, you may not use, copy, reproduce, translate, broadcast, modify, license, transmit, distribute, exhibit, perform, publish, or display any part, in any form, or by any means. Reverse engineering, disassembly, or decompilation of this software, unless required by law for interoperability, is prohibited.

The information contained herein is subject to change without notice and is not warranted to be error-free. If you find any errors, please report them to us in writing.

如果将本软件或相关文档交付给美国政府,或者交付给以美国政府名义获得许可证的任 何机构,必须符合以下规定:

U.S. GOVERNMENT RIGHTS Programs, software, databases, and related documentation and technical data delivered to U.S. Government customers are "commercial computer software" or "commercial technical data" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations. As such, the use, duplication, disclosure, modification, and adaptation shall be subject to the restrictions and license terms set forth in the applicable Government contract, and, to the extent applicable by the terms of the Government contract, the additional rights set forth in FAR 52.227-19, Commercial Computer Software License (December 2007). Oracle USA, Inc., 500 Oracle Parkway, Redwood City, CA 94065.

This software is developed for general use in a variety of information management applications. It is not developed or intended for use in any inherently dangerous applications, including applications which may create a risk of personal injury. If you use this software in dangerous applications, then you shall be responsible to take all appropriate fail-safe, backup, redundancy, and other measures to ensure the safe use of this software. Oracle Corporation and its affiliates disclaim any liability for any damages caused by use of this software in dangerous applications.

Oracle is a registered trademark of Oracle Corporation and/or its affiliates. MySQL is a trademark of Oracle Corporation and/or its affiliates, and shall not be used without Oracle's express written authorization. Other names may be trademarks of their respective owners.

This software and documentation may provide access to or information on content, products, and services from third parties. Oracle Corporation and its affiliates are not responsible for and expressly disclaim all warranties of any kind with respect to third-party content, products, and services. Oracle Corporation and its affiliates will not be responsible for any loss, costs, or damages incurred due to your access to or use of third-party content, products, or services.

This document in any form, software or printed matter, contains proprietary information that is the exclusive property of Oracle. Your access to and use of this material is subject to the terms and conditions of your Oracle Software License and Service Agreement, which has been executed and with which you agree to comply. This document and information contained herein may not be disclosed, copied, reproduced, or distributed to anyone outside Oracle without prior written consent of Oracle or as specifically provided below. This document is not part of your license agreement nor can it be incorporated into any contractual agreement with Oracle or its subsidiaries or affiliates.

This documentation is NOT distributed under a GPL license. Use of this documentation is subject to the following terms:

You may create a printed copy of this documentation solely for your own personal use. Conversion to other formats is allowed as long as the actual content is not altered or edited in any way. You shall not publish or distribute this documentation in any form or on any media, except if you distribute the documentation in a manner similar to how Oracle disseminates it (that is, electronically for download on a Web site with the software) or on a CD-ROM or similar medium, provided however that the documentation is disseminated together with the software on the same medium. Any other use, such as any dissemination of printed copies or use of this documentation, in whole or in part, in another publication, requires the prior written consent from an authorized representative of Oracle. Oracle and/or its affiliates reserve any and all rights to this documentation not expressly granted above.

For more information on the terms of this license, for details on how the MySQL documentation is built and produced, or if you are interested in doing a translation, please visit MySQL Contact & Questions.

For additional licensing information, including licenses for libraries used by MySQL products, see Preface, Notes, Licenses.

If you want help with using MySQL, please visit either the MySQL Forums or MySQL Mailing Lists where you can discuss your issues with other MySQL users.

For additional documentation on MySQL products, including translations of the documentation into other languages, and downloadable versions in variety of formats, including HTML and PDF formats, see the MySQL Documentation Library.

摘要

这是 MySQL 参考手册 它涉及 MySQL 5.1 至 5.1.2-alpha 版本。

文档生成于: 2005-11-15


目录

前言
1. 一般信息
1.1. 关于本手册
1.2. 本手册采用的惯例
1.3. MySQL AB 概述
1.4. MySQL 数据库管理系统概述
1.4.1. MySQL 的历史
1.4.2. MySQL 的的主要特性
1.4.3. MySQL 稳定性
1.4.4. MySQL 表最大能达到多少
1.4.5. 2000 年兼容性
1.5. MaxDB 数据库管理系统概述
1.5.1. 什么是 MaxDB?
1.5.2. MaxDB 的历史
1.5.3. MaxDB 的特性
1.5.4. 许可和支持
1.5.5. MaxDB 和 MySQL 之间的特性差异
1.5.6. MaxDB 和 MySQL 之间的协同性
1.5.7. 与 MaxDB 有关的链接
1.6. MySQL 发展大事记
1.6.1. MySQL 5.1 的新特性
1.7. MySQL 信息源
1.7.1. MySQL 邮件列表
1.7.2. IRC(在线聊天系统) 上的 MySQL 社区支持
1.7.3. MySQL 论坛上的 MySQL 社区支持
1.8. MySQL 标准的兼容性
1.8.1. MySQL 遵从的标准是什么
1.8.2. 选择 SQL 模式
1.8.3. 在 ANSI 模式下运行 MySQL
1.8.4. MySQL 对标准 SQL 的扩展
1.8.5. MySQL 与标准 SQL 的差别
1.8.6. MySQL 处理约束的方式
2. 安装 MySQL
2.1. 一般安装问题
2.1.1. MySQL 支持的操作系统
2.1.2. 选择要安装的 MySQL 分发版
2.1.3. 怎样获得 MySQL
2.1.4. 通过 MD5 校验和或 GnuPG 验证软件包的完整性
2.1.5. 安装布局
2.2. 使用二进制分发版的标准 MySQL 安装
2.3. 在 Windows 上安装 MySQL
2.3.1. Windows 系统要求
2.3.2. 选择安装软件包
2.3.3. 用自动安装器安装 MySQL
2.3.4. 使用 MySQL 安装向导
2.3.5. 使用配置向导
2.3.6. 通过非安装 Zip 文件安装 MySQL
2.3.7. 提取安装档案文件
2.3.8. 创建选项文件
2.3.9. 选择 MySQL 服务器类型
2.3.10. 首次启动服务器
2.3.11. 从 Windows 命令行启动 MySQL
2.3.12. 以 Windows 服务方式启动 MySQL
2.3.13. 测试 MySQL 安装
2.3.14. 在 Windows 环境下对 MySQL 安装的故障诊断与排除
2.3.15. 在 Windows 下升级 MySQL
2.3.16. Windows 版 MySQL 同 Unix 版 MySQL 对比
2.4. 在 Linux 下安装 MySQL
2.5.在 Mac OS X 中安装 MySQL
2.6. 在 NetWare 中安装 MySQL
2.7. 在其它类 Unix 系统中安装 MySQL
2.8. 使用源码分发版安装 MySQL
2.8.1. 源码安装概述
2.8.2. 典型配置选项
2.8.3. 从开发源码树安装
2.8.4. 处理 MySQL 编译问题
2.8.5. MIT-pthreads 注意事项
2.8.6. 在 Windows 下从源码安装 MySQL
2.8.7. 在 Windows 下编译 MySQL 客户端
2.9. 安装后的设置和测试
2.9.1. Windows 下安装后的过程
2.9.2. Unix 下安装后的过程
2.9.3. 使初始 MySQL 账户安全
2.10. 升级 MySQL
2.10.1. 从 5.0 版升级
2.10.2. 升级授权表
2.10.3. 将 MySQL 数据库拷贝到另一台机器
2.11. 降级 MySQL
2.12. 具体操作系统相关的注意事项
2.12.1. Linux 注意事项
2.12.2. Mac OS X 注意事项
2.12.3. Solaris 注意事项
2.12.4. BSD 注意事项
2.12.5. 其它 Unix 注意事项
2.12.6. OS/2 注意事项
2.13. Perl 安装注意事项
2.13.1. 在 Unix 中安装 Perl
2.13.2. 在 Windows 下安装 ActiveState Perl
2.13.3. 使用 Perl DBI/DBD 接口的问题
3. 教程
3.1. 连接与断开服务器
3.2. 输入查询
3.3. 创建并使用数据库
3.3.1. 创建并选择数据库
3.3.2. 创建表
3.3.3. 将数据装入表中
3.3.4. 从表检索信息
3.4. 获得数据库和表的信息
3.5. 在批处理模式下使用 mysql
3.6. 常用查询的例子
3.6.1. 列的最大值
3.6.2. 拥有某个列的最大值的行
3.6.3. 列的最大值:按组
3.6.4. 拥有某个字段的组间最大值的行
3.6.5. 使用用户变量
3.6.6. 使用外键
3.6.7. 根据两个键搜索
3.6.8. 根据天计算访问量
3.6.9. 使用 AUTO_INCREMENT
3.7. 孪生项目的查询
3.7.1. 查找所有未分发的孪生项
3.7.2. 显示孪生对状态的表
3.8. 与 Apache 一起使用 MySQL
4. MySQL 程序概述
4.1. MySQL 程序概述
4.2. 调用 MySQL 程序
4.3. 指定程序选项
4.3.1. 在命令行上使用选项
4.3.2. 使用选项文件
4.3.3. 用环境变量指定选项
4.3.4. 使用选项设置程序变量
5. 数据库管理
5.1. MySQL 服务器和服务器启动脚本
5.1.1. 服务器端脚本和实用工具概述
5.1.2. mysqld-max 扩展 MySQL 服务器
5.1.3. mysqld_safe:MySQL 服务器启动脚本
5.1.4. mysql.server:MySQL 服务器启动脚本
5.1.5. mysqld_multi:管理多个 MySQL 服务器的程序
5.2. mysqlmanager:MySQL 实例管理器
5.2.1. 用 MySQL 实例管理器启动 MySQL 服务器
5.2.2. 连接到 MySQL 实例管理器并创建用户账户
5.2.3. MySQL 实例管理器命令行选项
5.2.4. MySQL 实例管理器配置文件
5.2.5. MySQL 实例管理器识别的命令
5.3. mysqld:MySQL 服务器
5.3.1. mysqld命令行选项
5.3.2. SQL 服务器模式
5.3.3. 服务器系统变量
5.3.4. 服务器状态变量
5.4. mysql_fix_privilege_tables:升级 MySQL 系统表
5.5. MySQL 服务器关机进程
5.6. 一般安全问题
5.6.1. 通用安全指南
5.6.2. 使 MySQL 在攻击者面前保持安全
5.6.3. Mysqld 安全相关启动选项
5.6.4. LOAD DATA LOCAL 安全问题
5.7. MySQL 访问权限系统
5.7.1. 权限系统的作用
5.7.2. 权限系统工作原理
5.7.3. MySQL 提供的权限
5.7.4. 与 MySQL 服务器连接
5.7.5. 访问控制,阶段 1:连接核实
5.7.6. 访问控制,阶段 2:请求核实
5.7.7. 权限更改何时生效
5.7.8. 拒绝访问错误的原因
5.7.9. MySQL 4.1 中的密码哈希处理
5.8. MySQL 用户账户管理
5.8.1. MySQL 用户名和密码
5.8.2. 向 MySQL 增加新用户账户
5.8.3. 从 MySQL 删除用户账户
5.8.4. 限制账户资源
5.8.5. 设置账户密码
5.8.6. 使你的密码安全
5.8.7. 使用安全连接
5.9. 备份与恢复
5.9.1. 数据库备份
5.9.2. 示例用备份与恢复策略
5.9.3. 自动恢复
5.9.4. 表维护和崩溃恢复
5.9.5. myisamchk:MyISAM 表维护实用工具
5.9.6. 建立表维护计划
5.9.7. 获取关于表的信息
5.10. MySQL 本地化和国际应用
5.10.1. 数据和排序用字符集
5.10.2. 设置错误消息语言
5.10.3. 添加新的字符集
5.10.4. 字符定义数组
5.10.5. 字符串比较支持
5.10.6. 多字节字符支持
5.10.7. 字符集问题
5.10.8. MySQL 服务器时区支持
5.11. MySQL 日志文件
5.11.1. 错误日志
5.11.2. 通用查询日志
5.11.3. 二进制日志
5.11.4. 慢速查询日志
5.11.5. 日志文件维护
5.12. 在同一台机器上运行多个 MySQL 服务器
5.12.1. 在 Windows 下运行多个服务器
5.12.2. 在 Unix 中运行多个服务器
5.12.3. 在多服务器环境中使用客户端程序
5.13. MySQL 查询高速缓冲
5.13.1. 查询高速缓冲如何工作
5.13.2. 查询高速缓冲 SELECT 选项
5.13.3. 查询高速缓冲配置
5.13.4. 查询高速缓冲状态和维护
6. MySQL 中的复制
6.1. 复制介绍
6.2. 复制实施概述
6.3. 复制实施细节
6.3.1. 复制主线程状态
6.3.2. 复制从 I/O 线程状态
6.3.3. 复制从 SQL 线程状态
6.3.4. 复制传递和状态文件
6.4. 如何设置复制
6.5. 不同 MySQL 版本之间的复制兼容性
6.6. 升级复制设置
6.6.1. 将复制升级到 5.0 版
6.7. 复制特性和已知问题
6.8. 复制启动选项
6.9. 复制 FAQ
6.10. 复制故障诊断与排除
6.11. 通报复制缺陷
6.12. 多服务器复制中的 Auto-Increment
7. 优化
7.1. 优化概述
7.1.1. MySQL 设计局限与折衷
7.1.2. 为可移植性设计应用程序
7.1.3. 我们已将 MySQL 用在何处?
7.1.4. MySQL 基准套件
7.1.5. 使用自己的基准
7.2. 优化 SELECT 语句和其它查询
7.2.1. EXPLAIN 语法 (获取 SELECT 相关信息)
7.2.2. 估计查询性能
7.2.3. SELECT 查询的速度
7.2.4. MySQL 怎样优化 WHERE 子句
7.2.5. 范围优化
7.2.6. 索引合并优化
7.2.7. MySQL 如何优化 IS NULL
7.2.8. MySQL 如何优化 DISTINCT
7.2.9. MySQL 如何优化 LEFT JOIN 和 RIGHT JOIN
7.2.10. MySQL 如何优化嵌套 Join
7.2.11. MySQL 如何简化外部联合
7.2.12. MySQL 如何优化 ORDER BY
7.2.13. MySQL 如何优化 GROUP BY
7.2.14. MySQL 如何优化 LIMIT
7.2.15. 如何避免表扫描
7.2.16. INSERT 语句的速度
7.2.17. UPDATE 语句的速度
7.2.18. DELETE 语句的速度
7.2.19. 其它优化技巧
7.3. 锁定事宜
7.3.1. 锁定方法
7.3.2. 表锁定事宜
7.4. 优化数据库结构
7.4.1. 设计选择
7.4.2. 使你的数据尽可能小
7.4.3. 列索引
7.4.4. 多列索引
7.4.5. MySQL 如何使用索引
7.4.6. MyISAM 键高速缓冲
7.4.7. MyISAM 索引统计集合
7.4.8. MySQL 如何计算打开的表
7.4.9. MySQL 如何打开和关闭表
7.4.10. 在同一个数据库中创建多个表的缺陷
7.5. 优化 MySQL 服务器
7.5.1. 系统因素和启动参数的调节
7.5.2. 调节服务器参数
7.5.3. 控制查询优化器的性能
7.5.4. 编译和链接怎样影响 MySQL 的速度
7.5.5. MySQL 如何使用内存
7.5.6. MySQL 如何使用 DNS
7.6. 磁盘事宜
7.6.1. 使用符号链接
8. 客户端和实用工具程序
8.1. 客户端脚本和实用工具概述
8.2. myisampack:生成压缩、只读 MyISAM 表
8.3. mysql:MySQL 命令行工具
8.3.1. 选项
8.3.2. mysql命令
8.3.3. 怎样从文本文件执行 SQL 语句
8.3.4. mysql技巧
8.4. mysqlaccess:用于检查访问权限的客户端
8.5. mysqladmin:用于管理 MySQL 服务器的客户端
8.6. mysqlbinlog:用于处理二进制日志文件的实用工具
8.7. mysqlcheck:表维护和维修程序
8.8. mysqldump:数据库备份程序
8.9. mysqlhotcopy:数据库备份程序
8.10. mysqlimport:数据导入程序
8.11. mysqlshow-显示数据库、表和列信息
8.12. myisamlog:显示 MyISAM 日志文件内容
8.13. perror:解释错误代码
8.14. replace:字符串替换实用工具
8.15. mysql_zap:杀死符合某一模式的进程
9. 语言结构
9.1. 文字值
9.1.1. 字符串
9.1.2. 数值
9.1.3. 十六进制值
9.1.4. 布尔值
9.1.5. 位字段值
9.1.6. NULL 值
9.2. 数据库、表、索引、列和别名
9.2.1. 识别符限制条件
9.2.2. 识别符大小写敏感性
9.3. 用户变量
9.4. 系统变量
9.4.1. 结构式系统变量
9.5. 注释语法
9.6. MySQL 中保留字的处理
10. 字符集支持
10.1. 常规字符集和校对
10.2. MySQL 中的字符集和校对
10.3. 确定默认字符集和校对
10.3.1. 服务器字符集和校对
10.3.2. 数据库字符集和校对
10.3.3. 表字符集和校对
10.3.4. 列字符集和校对
10.3.5. 字符集和校对分配示例
10.3.6. 连接字符集和校对
10.3.7. 字符串文字字符集和校对
10.3.8. 在 SQL 语句中使用 COLLATE
10.3.9. COLLATE 子句优先
10.3.10. BINARY 操作符
10.3.11. 校对确定较为复杂的一些特殊情况
10.3.12. 校对必须适合字符集
10.3.13. 校对效果的示例
10.4. 字符集支持影响到的操作
10.4.1. 结果字符串
10.4.2. CONVERT()
10.4.3. CAST()
10.4.4. SHOW 语句
10.5. Unicode 支持
10.6. 用于元数据的 UTF8
10.7. 与其它 DBMS 的兼容性
10.8. 新字符集配置文件格式
10.9. 国家特有字符集
10.10. MySQL 支持的字符集和校对
10.10.1. Unicode 字符集
10.10.2. 西欧字符集
10.10.3. 中欧字符集
10.10.4. 南欧与中东字符集
10.10.5. 波罗的海字符集
10.10.6. 西里尔字符集
10.10.7. 亚洲字符集
11. 列类型
11.1. 列类型概述
11.1.1. 数值类型概述
11.1.2. 日期和时间类型概述
11.1.3. 字符串类型概述
11.2. 数值类型
11.3. 日期和时间类型
11.3.1. DATETIME、DATE 和 TIMESTAMP 类型
11.3.2. TIME 类型
11.3.3. YEAR 类型
11.3.4. Y2K 事宜和日期类型
11.4. String 类型
11.4.1. CHAR 和 VARCHAR 类型
11.4.2. BINARY 和 VARBINARY 类型
11.4.3. BLOB 和 TEXT 类型
11.4.4. ENUM 类型
11.4.5. SET 类型
11.5. 列类型存储需求
11.6. 选择正确的列类型
11.7. 使用来自其他数据库引擎的列类型
12. 函数和操作符
12.1. 操作符
12.1.1. 操作符优先级
12.1.2. 圆括号
12.1.3. 比较函数和操作符
12.1.4. 逻辑操作符
12.2. 控制流程函数
12.3. 字符串函数
12.3.1. 字符串比较函数
12.4. 数值函数
12.4.1. 算术操作符
12.4.2. 数学函数
12.5. 日期和时间函数
12.6. MySQL 使用什么日历?
12.7. 全文搜索功能
12.7.1. 布尔全文搜索
12.7.2. 全文搜索带查询扩展
12.7.3. 全文停止字
12.7.4. 全文限定条件
12.7.5. 微调 MySQL 全文搜索
12.8. Cast 函数和操作符
12.9. 其他函数
12.9.1. 位函数
12.9.2. 加密函数
12.9.3. 信息函数
12.9.4. 其他函数
12.10. 与 GROUP BY 子句同时使用的函数和修改程序
12.10.1. GROUP BY(聚合) 函数
12.10.2. GROUP BY 修改程序
12.10.3. 具有隐含字段的 GROUP BY
13. SQL 语句语法
13.1. 数据定义语句
13.1.1. ALTER DATABASE 语法
13.1.2. ALTER TABLE 语法
13.1.3. CREATE DATABASE 语法
13.1.4. CREATE INDEX 语法
13.1.5. CREATE TABLE 语法
13.1.6. DROP DATABASE 语法
13.1.7. DROP INDEX 语法
13.1.8. DROP TABLE 语法
13.1.9. RENAME TABLE 语法
13.2. 数据操作语句
13.2.1. DELETE 语法
13.2.2. DO 语法
13.2.3. HANDLER 语法
13.2.4. INSERT 语法
13.2.5. LOAD DATA INFILE 语法
13.2.6. REPLACE 语法
13.2.7. SELECT 语法
13.2.8. Subquery 语法
13.2.9. TRUNCATE 语法
13.2.10. UPDATE 语法
13.3. MySQL 实用工具语句
13.3.1. DESCRIBE 语法 (获取有关列的信息)
13.3.2. USE 语法
13.4. MySQL 事务处理和锁定语句
13.4.1. START TRANSACTION, COMMIT 和 ROLLBACK 语法
13.4.2. 不能回滚的语句
13.4.3. 会造成隐式提交的语句
13.4.4. SAVEPOINT 和 ROLLBACK TO SAVEPOINT 语法
13.4.5. LOCK TABLES 和 UNLOCK TABLES 语法
13.4.6. SET TRANSACTION 语法
13.4.7. XA 事务
13.5. 数据库管理语句
13.5.1. 账户管理语句
13.5.2. 表维护语句
13.5.3. SET 语法
13.5.4. SHOW 语法
13.5.5. 其它管理语句
13.6. 复制语句
13.6.1. 用于控制主服务器的 SQL 语句
13.6.2. 用于控制从服务器的 SQL 语句
13.7. 用于预处理语句的 SQL 语法
14. 插件式存储引擎体系结构
14.1. 前言
14.2. 概述
14.3. 公共 MySQL 数据库服务器层
14.4. 选择存储引擎
14.5. 将存储引擎指定给表
14.6. 存储引擎和事务
14.7. 插入存储引擎
14.8. 拔出存储引擎
14.9. 插件式存储器的安全含义
15. 存储引擎和表类型
15.1. MyISAM 存储引擎
15.1.1. MyISAM 启动选项
15.1.2. 键所需的空间
15.1.3. MyISAM 表的存储格式
15.1.4. MyISAM 表方面的问题
15.2. InnoDB 存储引擎
15.2.1. InnoDB 概述
15.2.2. InnoDB 联系信息
15.2.3. InnoDB 配置
15.2.4. InnoDB 启动选项
15.2.5. 创建 InnoDB 表空间
15.2.6. 创建 InnoDB 表
15.2.7. 添加和删除 InnoDB 数据和日志文件
15.2.8. InnoDB 数据库的备份和恢复
15.2.9. 将 InnoDB 数据库移到另一台机器上
15.2.10. InnoDB 事务模型和锁定
15.2.11. InnoDB 性能调节提示
15.2.12. 多版本的实施
15.2.13. 表和索引结构
15.2.14. 文件空间管理和磁盘 I/O
15.2.15. InnoDB 错误处理
15.2.16. 对 InnoDB 表的限制
15.2.17. InnoDB 故障诊断与排除
15.3. MERGE 存储引擎
15.3.1. MERGE 表方面的问题
15.4. MEMORY (HEAP) 存储引擎
15.5. BDB (BerkeleyDB) 存储引擎
15.5.1. BDB 支持的操作系统
15.5.2. 安装 BDB
15.5.3. BDB 启动选项
15.5.4. BDB 表的特性
15.5.5. 修改 BDB 所需的事宜
15.5.6. 对 BDB 表的限制
15.5.7. 使用 BDB 表时可能出现的错误
15.6. EXAMPLE 存储引擎
15.7. FEDERATED 存储引擎
15.7.1. 安装 FEDERATED 存储引擎
15.7.2. FEDERATED 存储引擎介绍
15.7.3. 如何使用 FEDERATED 表
15.7.4. FEDERATED 存储引擎的局限性
15.8. ARCHIVE 存储引擎
15.9. CSV 存储引擎
15.10. BLACKHOLE 存储引擎
16. 编写自定义存储引擎
16.1. 前言
16.2. 概述
16.3. 创建存储引擎源文件
16.4. 创建 handlerton
16.5. 对处理程序进行实例化处理
16.6. 定义表扩展
16.7. 创建表
16.8. 打开表
16.9. 实施基本的表扫描功能
16.9.1. 实施 store_lock() 函数
16.9.2. 实施 external_lock() 函数
16.9.3. 实施 rnd_init() 函数
16.9.4. 实施 info() 函数
16.9.5. 实施 extra() 函数
16.9.6. 实施 rnd_next() 函数
16.10. 关闭表
16.11. 为存储引擎添加对 INSERT 的支持
16.12. 为存储引擎添加对 UPDATE 的支持
16.13. 为存储引擎添加对 DELETE 的支持
16.14. API 引用
16.14.1. bas_ext
16.14.2. close
16.14.3. create
16.14.4. delete_row
16.14.5. delete_table
16.14.6. external_lock
16.14.7. extra
16.14.8. info
16.14.9. open
16.14.10. rnd_init
16.14.11. rnd_next
16.14.12. store_lock
16.14.13. update_row
16.14.14. write_row
17. MySQL 簇
17.1. MySQL 簇概述
17.2. MySQL 簇的基本概念
17.3. 多计算机的简单基础知识
17.3.1. 硬件、软件和联网
17.3.2. 安装
17.3.3. 配置
17.3.4. 首次启动
17.3.5. 加载示例数据并执行查询
17.3.6. 安全关闭和重启
17.4. MySQL 簇的配置
17.4.1. 从源码创建 MySQL 簇
17.4.2. 安装软件
17.4.3. MySQL 簇的快速测试设置
17.4.4. 配置文件
17.5. MySQL 簇中的进程管理
17.5.1. 用于 MySQL 簇的 MySQL 服务器进程使用
17.5.2. ndbd,存储引擎节点进程
17.5.3. ndb_mgmd,“管理服务器”进程
17.5.4. ndb_mgm,“管理客户端”进程
17.5.5. 用于 MySQL 簇进程的命令选项
17.6. MySQL 簇的管理
17.6.1. MySQL 簇的启动阶段
17.6.2. “管理客户端”中的命令
17.6.3. MySQL 簇中生成的事件报告
17.6.4. 单用户模式
17.6.5. MySQL 簇的联机备份
17.7. 使用与 MySQL 簇的高速互连
17.7.1. 配置 MySQL 簇以使用 SCI 套接字
17.7.2. 理解簇互连的影响
17.8. MySQL 簇的已知限制
17.9. MySQL 簇发展的重要历程
17.9.1. MySQL 5.0 中的 MySQL 簇变化
17.9.2. 关于 MySQL 簇的 MySQL 5.1 发展历程
17.10. MySQL 簇常见问题解答
17.11. MySQL 簇术语表
18. 分区
18.1. MySQL 中的分区概述
18.2. 分区类型
18.2.1. RANGE 分区
18.2.2. LIST 分区
18.2.3. HASH 分区
18.2.4. KEY 分区
18.2.5. 子分区
18.2.6. MySQL 分区处理 NULL 值的方式
18.3. 分区管理
18.3.1. RANGE 和 LIST 分区的管理
18.3.2. HASH 和 KEY 分区的管理
18.3.3. 分区维护
18.3.4. 获取关于分区的信息
19. MySQL 中的空间扩展
19.1. 前言
19.2. OpenGIS 几何模型
19.2.1. Geometry 类的层次
19.2.2. 类 Geometry
19.2.3. 类 Point
19.2.4. 类 Curve
19.2.5. 类 LineString
19.2.6. 类 Surface
19.2.7. 类 Polygon
19.2.8. 类 GeometryCollection
19.2.9. 类 MultiPoint
19.2.10. 类 MultiCurve
19.2.11. 类 MultiLineString
19.2.12. 类 MultiSurface
19.2.13. 类 MultiPolygon
19.3. 支持的空间数据格式
19.3.1. 著名的文本 (WKT) 格式
19.3.2. 著名的二进制 (WKB) 格式
19.4. 创建具备空间功能的 MySQL 数据库
19.4.1. MySQL 空间数据类型
19.4.2. 创建空间值
19.4.3. 创建空间列
19.4.4. 填充空间列
19.4.5. 获取空间数据
19.5. 分析空间信息
19.5.1. Geometry 格式转换函数
19.5.2. Geometry 函数
19.5.3. 从已有 Geometry 创建新 Geometry 的函数
19.5.4. 测试几何对象间空间关系的函数
19.5.5. 关于几何最小边界矩形 (MBR) 的关系
19.5.6. 测试几何类之间空间关系的函数
19.6. 优化空间分析
19.6.1. 创建空间索引
19.6.2. 使用空间索引
19.7. MySQL 的一致性和兼容性
19.7.1. 尚未实施的 GIS 特性
20. 存储程序和函数
20.1. 存储程序和授权表
20.2. 存储程序的语法
20.2.1. CREATE PROCEDURE 和 CREATE FUNCTION
20.2.2. ALTER PROCEDURE 和 ALTER FUNCTION
20.2.3. DROP PROCEDURE 和 DROP FUNCTION
20.2.4. SHOW CREATE PROCEDURE 和 SHOW CREATE FUNCTION
20.2.5. SHOW PROCEDURE STATUS 和 SHOW FUNCTION STATUS
20.2.6. CALL 语句
20.2.7. BEGIN ... END 复合语句
20.2.8. DECLARE 语句
20.2.9. 存储程序中的变量
20.2.10. 条件和处理程序
20.2.11. 光标
20.2.12. 流程控制构造
20.3. 存储程序、函数、触发程序和复制:常见问题
20.4. 存储子程序和触发程序的二进制日志功能
21. 触发程序
21.1. CREATE TRIGGER 语法
21.2. DROP TRIGGER 语法
21.3. 使用触发程序
22. 视图
22.1. ALTER VIEW 语法
22.2. CREATE VIEW 语法
22.3. DROP VIEW 语法
22.4. SHOW CREATE VIEW 语法
23. INFORMATION_SCHEMA 信息数据库
23.1. INFORMATION_SCHEMA 表
23.1.1. INFORMATION_SCHEMA SCHEMATA 表
23.1.2. INFORMATION_SCHEMA TABLES 表
23.1.3. INFORMATION_SCHEMA COLUMNS 表
23.1.4. INFORMATION_SCHEMA STATISTICS 表
23.1.5. INFORMATION_SCHEMA USER_PRIVILEGES 表
23.1.6. INFORMATION_SCHEMA SCHEMA_PRIVILEGES 表
23.1.7. INFORMATION_SCHEMA TABLE_PRIVILEGES 表
23.1.8. INFORMATION_SCHEMA COLUMN_PRIVILEGES 表
23.1.9. INFORMATION_SCHEMA CHARACTER_SETS 表
23.1.10. INFORMATION_SCHEMA COLLATIONS 表
23.1.11. INFORMATION_SCHEMA COLLATION_CHARACTER_SET_APPLICABILITY 表
23.1.12. INFORMATION_SCHEMA TABLE_CONSTRAINTS 表
23.1.13. INFORMATION_SCHEMA KEY_COLUMN_USAGE 表
23.1.14. INFORMATION_SCHEMA ROUTINES 表
23.1.15. INFORMATION_SCHEMA VIEWS 表
23.1.16. INFORMATION_SCHEMA TRIGGERS 表
23.1.17. 其他 INFORMATION_SCHEMA 表
23.2. SHOW 语句的扩展
24. 精度数学
24.1. 数值的类型
24.2. DECIMAL 数据类型更改
24.3. 表达式处理
24.4. 四舍五入
24.5. 精度数学示例
25. API 和库
25.1. libmysqld,嵌入式 MySQL 服务器库
25.1.1. 嵌入式 MySQL 服务器库概述
25.1.2. 使用 libmysqld 编译程序
25.1.3. 使用嵌入式 MySQL 服务器时的限制
25.1.4. 与嵌入式服务器一起使用的选项
25.1.5. 嵌入式服务器中尚需完成的事项 (TODO)
25.1.6. 嵌入式服务器示例
25.1.7. 嵌入式服务器的许可
25.2. MySQL C API
25.2.1. C API 数据类型
25.2.2. C API 函数概述
25.2.3. C API 函数描述
25.2.4. C API 预处理语句
25.2.5. C API 预处理语句的数据类型
25.2.6. C API 预处理语句函数概述
25.2.7. C API 预处理语句函数描述
25.2.8. C API 预处理语句方面的问题
25.2.9. 多查询执行的 C API 处理
25.2.10. 日期和时间值的 C API 处理
25.2.11. C API 线程函数介绍
25.2.12. C API 嵌入式服务器函数介绍
25.2.13. 使用 C API 时的常见问题
25.2.14. 创建客户端程序
25.2.15. 如何生成线程式客户端
25.3. MySQL PHP API
25.3.1. 使用 MySQL 和 PHP 的常见问题
25.4. MySQL Perl API
25.5. MySQL C++ API
25.5.1. Borland C++
25.6. MySQL Python API
25.7. MySQL Tcl API
25.8. MySQL Eiffel Wrapper
25.9. MySQL 程序开发实用工具
25.9.1. msql2mysql:转换 mSQL 程序以用于 MySQL
25.9.2. mysql_config:获取编译客户端的编译选项
26. 连接器
26.1. MySQL Connector/ODBC
26.1.1. MyODBC 介绍
26.1.2. 关于 ODBC 和 MyODBC 的一般信息
26.1.3. 如何安装 MyODBC
26.1.4. 在 Windows 平台上从二进制版本安装 MyODBC
26.1.5. I 在 Unix 平台上从二进制版本安装 MyODBC
26.1.6. 在 Windows 平台上从源码版本安装 MyODBC
26.1.7. 在 Unix 平台上从源码版本安装 MyODBC
26.1.8. 从 BitKeeper 开发源码树安装 MyODBC
26.1.9. MyODBC 配置
26.1.10. 与 MyODBC 连接相关的事宜
26.1.11. MyODBC 和 Microsoft Access
26.1.12. MyODBC 和 Microsoft VBA 及 ASP
26.1.13. MyODBC 和第三方 ODBC 工具
26.1.14. MyODBC 通用功能
26.1.15. 基本的 MyODBC 应用步骤
26.1.16. MyODBC API 引用
26.1.17. MyODBC 数据类型
26.1.18. MyODBC 错误代码
26.1.19. MyODBC 与 VB:ADO、DAO 和 RDO
26.1.20. MyODBC 与 Microsoft.NET
26.1.21. 感谢
26.2. MySQL Connector/NET
26.2.1. 前言
26.2.2. 下载并安装 MySQL Connector/NET
26.2.3. Connector/NET 体系结构
26.2.4. 使用 MySQL Connector/NET
26.2.5. MySQL Connector/NET 变更史
26.3. MySQL Connector/J
26.3.1. 基本的 JDBC 概念
26.3.2. 安装 Connector/J
26.3.3. JDBC 引用
26.3.4. 与 J2EE 和其他 Java 框架一起使用 Connector/J
26.3.5. 诊断 Connector/J 方面的问题
26.3.6. Changelog
26.4. MySQL Connector/MXJ
26.4.1. 前言
26.4.2. 支持平台:
26.4.3. Junit 测试要求
26.4.4. 运行 Junit 测试
26.4.5. 作为 JDBC 驱动程序的一部分运行
26.4.6. 在 Java 对象中运行
26.4.7. MysqldResource API
26.4.8. 在 JMX 代理 (custom) 中运行
26.4.9. 部署在标准的 JMX 代理环境下 (JBoss)
26.4.10. 安装
27. 扩展 MySQL
27.1. MySQL 内部控件
27.1.1. MySQL 线程
27.1.2. MySQL 测试套件
27.2. 为 MySQL 添加新函数
27.2.1. 自定义函数接口的特性
27.2.2. CREATE FUNCTION/DROP FUNCTION 语法
27.2.3. 添加新的自定义函数
27.2.4. 添加新的固有函数
27.3. 为 MySQL 添加新步骤
27.3.1. 步骤分析
27.3.2. 编写步骤
A. 问题和常见错误
A.1. 如何确定导致问题的原因
A.2. 使用 MySQL 程序时的常见错误
A.2.1. 拒绝访问
A.2.2. 无法连接到 [local] MySQL 服务器
A.2.3. 客户端不支持鉴定协议
A.2.4. 输入密码时出现密码错误
A.2.5. 主机的 host_name 被屏蔽
A.2.6. 连接数过多
A.2.7. 内存溢出
A.2.8. MySQL 服务器不可用
A.2.9. 信息包过大
A.2.10. 通信错误和失效连接
A.2.11. 表已满
A.2.12. 无法创建文件/写入文件
A.2.13. 命令不同步
A.2.14. 忽略用户
A.2.15. 表 tbl_name 不存在
A.2.16. 无法初始化字符集
A.2.17. 文件未找到
A.3. 与安装有关的事宜
A.3.1. 与 MySQL 客户端库的链接问题
A.3.2. 如何以普通用户身份运行 MySQL
A.3.3. 与文件许可有关的问题
A.4. 与管理有关的事宜
A.4.1. 如何复位根用户密码
A.4.2. 如果 MySQL 依然崩溃,应作些什么
A.4.3. MySQL 处理磁盘满的方式
A.4.4. MySQL 将临时文件储存在哪里
A.4.5. 如何保护或更改 MySQL 套接字文件/tmp/mysql.sock
A.4.6. 时区问题
A.5. 与查询有关的事宜
A.5.1. 搜索中的大小写敏感性
A.5.2. 使用 DATE 列方面的问题
A.5.3. 与 NULL 值有关的问题
A.5.4. 与列别名有关的问题
A.5.5. 非事务表回滚失败
A.5.6. 从相关表删除行
A.5.7. 解决与不匹配行有关的问题
A.5.8. 与浮点比较有关的问题
A.6. 与优化器有关的事宜
A.7. 与表定义有关的事宜
A.7.1. 与 ALTER TABLE 有关的问题
A.7.2. 如何更改表中的列顺序
A.7.3. TEMPORARY TABLE 问题
A.8. MySQL 中的已知事宜
A.8.1. MySQL 中的打开事宜
B. 错误代码和消息
B.1. 服务器错误代码和消息
B.2. 客户端错误代码和消息
C. 感谢
C.1. MySQL AB 处的开发人
C.2. MySQL 贡献人
C.3. 资料员和译员
C.4. MySQL 使用和包含的库
C.5. 支持 MySQL 的软件包
C.6. 用于创建 MySQL 的工具
C.7. MySQL 支持人员
D. MySQL 变更史
D.1. 5.1.x 版中的变更情况 (开发)
D.1.1. 5.1.2 版中的变更情况 (尚未发布)
D.1.2. 5.1.1 版中的变更情况 (尚未发布)
D.2. MyODBC 的变更情况
D.2.1. MyODBC 3.51.12 的变更情况
D.2.2. MyODBC 3.51.11 的变更情况
E. 移植到其他系统
E.1. 调试 MySQL 服务器
E.1.1. 针对调试编译 MySQL
E.1.2. 创建跟踪文件
E.1.3. 在 gdb 环境下调试 mysqld
E.1.4. 使用堆栈跟踪
E.1.5. 使用日志文件找出 mysqld 中的错误原因
E.1.6. 如果出现表崩溃,请生成测试案例
E.2. 调试 MySQL 客户端
E.3. DBUG 软件包
E.4. 关于 RTS 线程的注释
E.5. 线程软件包之间的差异
F. 环境变量
G. MySQL 正则表达式
H. MySQL 中的限制
H.1. 联合的限制
I. 特性限制
I.1. 对存储子程序和触发程序的限制
I.2. 对服务器端光标的限制
I.3. 对子查询的限制
I.4. 对视图的限制
I.5. 对 XA 事务的限制
J. GNU 通用公共许可
K. MySQL FLOSS 许可例外
索引

图形清单

14.1. MySQL 插件式存储引擎的体系结构
14.2. 存储引擎比较
16.1. MySQL 体系结构

表格清单

26.1. 连接属性
26.2. 转换表
26.3. 用于 ResultSet.getObject() 的 MySQL 类型和 Java 类型
26.4. MySQL 对 Java 编码名称的翻译

示例清单

26.1. 从 DriverManager 获得连接
26.2. 使用 java.sql.Statement 执行 SELECT 查询
26.3. 存储程序示例
26.4. 使用 Connection.prepareCall()
26.5. 注册输出参数
26.6. 设置 CallableStatement 输入参数
26.7. 检索结果和输出参数值
26.8. 使用 Statement.getGeneratedKeys() 检索 AUTO_INCREMENT 列的值
26.9. 使用 SELECT LAST_INSERT_ID() 检索 AUTO_INCREMENT 列的值
26.10. 在可更新的 ResultSets 中检索 AUTO_INCREMENT 列的值
26.11. 设置 Unix 环境下的 CLASSPATH
26.12. 与 J2EE 应用服务器一起使用连接池
26.13. 重试逻辑的事务示例

这是 MySQL 参考手册的翻译版本,关于 MySQL 参考手册,请访问dev.mysql.com。 原始参考手册为英文版,与英文版参考手册相比,本翻译版可能不是最新的。