MySQL中文参考手册
译者:晏子
(
[email protected]
) 主页:
http://linuxdb.yeah.net
1 MySQL的一般的信息
1.1 什么是MySQL?
1.2 关于这本手册
1.2.1 在这本手册使用的约定
1.3 MySQL的历史
1.4 MySQL的主要特征
1.5 MySQL稳定性?
1.6 顺应2000年
1.7 SQL一般信息和教程
1.8 有用的MySQL相关连接
2 MySQL 邮寄表及怎么问问题或报告错误(bugs)
2.1 MySQL邮寄表
2.2 提问或报告错误
2.3 怎么报告错误或问题
2.4 在邮寄表上回答问题的指南
3 MySQL的许可证和技术支持
3.1 MySQL许可证政策
3.2 MySQL 使用的版权
3.2.1 可能的未来版权变化
3.3 MySQL商业性分发
3.4 许可证实例
3.4.1 销售使用 MySQL产品
3.4.2 销售MySQL相关的服务
3.4.3 ISP MySQL 服务
3.4.4 运营一个使用MySQL的Web服务器
3.5 MySQL的许可证和技术支持费用
3.5.1 付款信息
3.5.2 联系信息
3.6 商业性支持的类型
3.6.1 基本的电子邮件支持
3.6.2 扩充的电子邮件支持
3.6.3 登录支持
3.6.4 扩充的登录支持
4 安装 MySQL
4.1 怎样得到MySQL
4.2 MySQL支持的操作系统
4.3 要使用MySQL哪个版本
4.4 怎样和何时发布更新版本
4.5 安装布局
4.6 安装MySQL二进制代码分发
4.6.1 Linux RPM注意事项
4.6.2 建立客户程序
4.6.3 系统特定的问题
4.6.3.1 Linux 注意事项
4.6.3.2 HP-UX
注意事项
4.7 安装 MySQL源代码分发
4.7.1 快速安装概述
4.7.2 运用补丁
4.7.3 典型的configure选项
4.8 编译的问题?
4.9 MIT-pthreads 注意事项
4.10 Perl 安装说明
4.10.1 在Unix操作系统上安装 Perl
4.10.2 在 Win32上安装 ActiveState Perl
4.10.3 在 Win32 上安装 MySQL Perl 分发
4.10.4 使用 Perl DBI/DBD接口遇到的问题
4.11 系统特定的问题
4.11.1 Solaris注意事项
4.11.2 Solaris 2.7 注意事项
4.11.3 Solaris x86 注意事项
4.11.4 SunOS 4 注意事项
4.11.5 Linux (所有的Linux版本)注意事项
4.11.5.1 Linux-x86 注意事项
4.11.5.2 RedHat 5.0 注意事项
4.11.5.3 RedHat 5.1 注意事项
4.11.5.4 Linux-SPARC 注意事项
4.11.5.5 Linux-Alpha 注意事项
4.11.5.6 MkLinux 注意事项
4.11.5.7 Qube2 Linux 注意事项
4.11.6 Alpha-DEC-Unix 注意事项
4.11.7 Alpha-DEC-OSF1 注意事项
4.11.8 SGI-Irix 注意事项
4.11.9 FreeBSD 注意事项
4.11.10 NetBSD 注意事项
4.11.11 BSD/OS 注意事项
4.11.11.1 BSD/OS 2.x 注意事项
4.11.11.2 BSD/OS 3.x 注意事项
4.11.11.3 BSD/OS 4.x 注意事项
4.11.12 SCO 注意事项
4.11.13 SCO Unixware 7.0 注意事项
4.11.14 IBM-AIX 注意事项
4.11.15 HP-UX 注意事项
4.12 Win32 注意事项
4.12.1 在 Win32 上安装 MySQL
4.12.2 在 Win95 /Win98上启动 MySQL
4.12.3 在 NT 上启动 MySQL
4.12.4 在 Win32 上运行 MySQL
4.12.5 用 SSH 从 Win32 连接一个远程MySQL
4.12.6 MySQL-Win32与Unix MySQL 比较
4.13 OS/2 注意事项
4.14 TcX 二进制代码
4.15 安装后期(post-installation)的设置与测试
4.15.1 运行mysql_install_db 的问题
4.15.2 启动 MySQL 服务器的问题
4.15.3 自动启动和停止 MySQL
4.15.4 选项文件
4.16 升级和降级(downgrading)时有什么特别要做的事情吗?
4.16.1 从一个 3.22 版本升级到 3.23
4.16.2 从一个 3.21 版本升级到 3.22
4.16.3 从一个 3.20 版本升级到 3.21
4.16.4 升级到其他的体系结构
5 MySQL 与标准如何兼容?
5.1 MySQL对ANSI SQL92 的扩充
5.2 以ANSI模式运行 MySQL
5.3 MySQL与 ANSI SQL92 相比的差别
5.4 MySQL 缺乏的功能
5.4.1 子选择(Sub-selects)
5.4.2 SELECT INTO TABLE
5.4.3 事务(Transactions)
5.4.4 存储过程和触发器
5.4.5 外部关键字(Foreign Keys)
5.4.5.1 不使用外部关键字的原因
5.4.6 视图(Views)
5.4.7 '--'作为一个 注解的开始
5.5 MySQL 遵守什么标准?
5.6 没有提交/回卷(COMMIT / ROLLBACK)怎样解决
6 MySQL 存取权限系统
6.1
权限系统
做什么
6.2 MySQL用户名字和口令
6.3 与MySQL服务器联接
6.4 使你的口令安全
6.5 由 MySQL 提供的权限
6.6
权限体制
怎样工作
6.7 存取控制,阶段1:连接证实
6.8 存取控制,阶段2:请求证实
6.9 权限更改何时生效
6.10 建立初始的 MySQL权限
6.11 为 MySQL 增加新的用户权限
6.12 怎么设置口令
6.13 存取拒绝(Access Denied)的原因
6.14 怎样使 MySQL 安全以对抗解密高手(cracker)
7 MySQL 语言参考
7.1 文字:怎样写字符串和数字
7.1.1 字符串
7.1.2 数字
7.1.3 十六进制值
7.1.4 空值(NULL)
7.1.5 数据库,表,索引,行列和别名命名
7.1.5.1 名字的大小写敏感
7.2 用户(自定义)变量
7.3 列类型
7.3.1 列类型的存储要求
7.3.5 数字类型
7.3.6 日期和时间类型
7.3.6.1 问题和日期类型
7.3.6.2 DATETIME,DATE和TIMESTAMP类型
7.3.6.3 TIME类型
7.3.6.4 YEAR类型
7.3.7 串类型
7.3.7.1 CHAR和VARCHAR类型
7.3.7.2 BLOB和TEXT类型
7.3.7.3 ENUM类型
7.3.7.4 SET类型
7.3.8 为列选择正确类型
7.3.9 列索引
7.3.10 多列索引
7.3.11 使用从其他数据库引擎的列类型
7.4 用在SELECT和WHERE子句的函数
7.4.1 组函数
7.4.2 正常的算术运算
7.4.3 位函数
7.4.4 逻辑运算
7.4.5 比较操作符
7.4.6 串比较函数
7.4.7 类型强制操作符
7.4.8 控制流程函数
7.4.9 数学函数
7.4.10 串函数
7.4.11 日期和时间函数
7.4.12 其他函数
7.4.13 与GROUP BY子句一起使用的函数
7.5 CREATE DATABASE (创建数据库)句法
7.6 DROP DATABASE ( 抛弃数据库)句法
7.7 CREATE TABLE (创建表)句法
7.7.1 平静(silent)的列指定变化
7.8 ALTER TABLE (改变表)句法
7.9 OPTIMIZE TABLE (优化表) 句法
7.10 DROP TABLE (抛弃表)句法
7.11 DELETE (删除)句法
7.12 SELECT (精选)句法
7.13 JOIN (联接)句法
7.14 INSERT (插入)句法
7.15 REPLACE (替换)句法
7.16 LOAD DATA INFILE (装载数据到文件)句法
7.17 UPDATE (更新)句法
7.18 USE (使用)句法
7.19 FLUSH (清除缓存)句法
7.20 KILL (杀灭)句法
7.21 SHOW (显示)句法(得到关于表,列等的信息)
7.22 EXPLAIN (解释)句法(得到关于SELECT的信息)
7.23 DESCRIBE (描述)句法(得到列的信息)
7.24 LOCK TABLES/UNLOCK TABLES (锁定表/解锁表)句法
7.25 SET OPTION (设置选项)句法
7.26 GRANT (授权)和REVOKE (撤回)句法
7.27 CREATE INDEX (创建索引)句法
7.28 DROP INDEX (抛弃索引)句法
7.29 注解句法
7.30 CREATE FUNCTION/DROP FUNCTION (创建函数/抛弃函数)句法
7.31 MySQL对保留字很挑剔吗?
8 MySQL 教程
8.1 联接和断开服务器
8.2 输入查询
8.3 普通查询的例子
8.3.1 列的最大值
8.3.2 具有一个特定列最大值的行
8.3.3 列的最大值:按组:只有数值
8.3.4 具有一特定列的分组最大值的行
8.3.5 使用外部关键字
8.4 创建和使用一个数据库
8.4.1 创造并选用一个数据库
8.4.2 创建一个表
8.4.3 将数据装入表
8.4.4 从一个表检索信息
8.4.4.1 选择所有数据
8.4.4.2 选择特定行
8.4.4.3 选择特定列
8.4.4.4 排序行
8.4.4.5 日期计算
8.4.4.6 NULL值操作
8.4.4.7 模式匹配
8.4.4.8 行计数
8.4.5 使用多个表
8.5 取得数据库和表的信息
8.6 批模式(batch mode)下使用mysql
8.7 从"双胞项目"中查询
8.7.1 查找所有的非分布式的双胞
8.7.2 在双胞状态上显示一个表
9 MySQL 服务器功能
9.1 MySQL 支持什么语言?
9.1.1 用于数据和排序的字符集
9.1.2 增加一个新的字符集
9.1.3 多字节特性支持
9.2 更新记录
9.3 MySQL 表格能有多大?
9.4 MySQL 表类型
10 从 MySQL 得到最大的性能
10.1 优化概述
10.2 系统的编译期间和启动参数的调节
10.2.1 编译和链接如何影响 MySQL 的速度
10.2.2 磁盘问题
10.2.2.1 为数据库和表格使用符号链接
10.2.3 调节服务器参数
10.2.4 MySQL 怎样打开和关闭表
10.2.5 在同一个数据库中创建大量表缺点
10.2.6 为什么有如此多打开的表?
10.2.7 MySQL 怎样使用内存
10.2.8 MySQL 怎样锁定表
10.2.9 表锁定问题
10.3 取得尽可能小的数据
10.4 MySQL 索引的使用
10.5 存取或更新数据的查询速度
10.5.1 估计查询性能
10.5.2 SELECT 查询的速度
10.5.3 MySQL 怎样优化WHERE子句
10.5.4 MySQL 怎样优化LEFT JOIN
10.5.5 MySQL 怎样优化LIMIT
10.5.6 INSERT查询的速度
10.5.7 UPDATE查询的速度
10.5.8 DELETE查询的速度
10.6 选择一种表类型
10.6.1 静态(定长)表的特征
10.6.2 动态表的特征
10.6.3 压缩表的特征
10.6.4 内存(In-memory table)表的特征
10.7 其他优化技巧
10.8 使用你自己的基准测试
10.9 设计选择
10.10 MySQL 设计限制/折衷
10.11 可移植性
10.12 我们为了什么而使用 MySQL ?
11 MySQL 基准套件
12 MySQL 实用程序
12.1 不一致的 MySQL 程序概述
12.2 管理一个 MySQL 服务器
12.3 从 MySQL 数据库和表中倒出(dump)结构和数据
12.4 从文本文件导入数据
12.5 MySQL 压缩只读表生成器
13 维护 MySQL 安装
13.1 使用myisamchkk进行表维护和崩溃恢复
13.1.1 myisamchk的调用语法
13.1.2 myisamchk的内存用法
13.2 13.2 建立表维护规范
13.3 得到有关表的信息
13.4 使用myisamchk进行崩溃恢复
13.4.1 怎样检查表的出错
13.4.2 怎样修复表
13.4.3 表优化
13.5 记录文件维护
14 给MySQL增加新函数
14.1 增加新的用户定义函数
14.1.1 UDF调用顺序
14.1.2 参数处理
14.1.3 返回值和出错处理
14.1.4 编编并安装用户定义函数
14.2 增加新的原生(native)函数
15 给 MySQL 增加新的过程
15.1 过程分析
15.2 写一个过程.
16 MySQL ODBC 支持
16.1 由MyODBC 支持的操作系统
16.2 怎样报告 MyODBC 问题
16.3 已知的用 MyODBC 操作的问题
16.4 怎样在 ODBC 管理员程序中填写各种各样的字段
16.5 怎样得到ODBC的一个AUTO_INCREMENT列的值
16.6 报告 MyODBC 的问题
17 与一些常用程序一起使用MySQL
17.1 与 Apache一起使用 MySQL
18 问题和常见的错误
18.1 如果 MySQL一直崩溃该做什么
18.2 使用 MySQL 时一些常见的错误
18.2.1 出错-MySQL server has gone away
18.2.2 出错-Can't connect to [local] MySQL server
18.2.3 出错-Host '...' is blocked
18.2.4 出错-Out of memory
18.2.5 出错-Packet too large
18.2.6 出错-The table is full
18.2.7 出错-Commands out of sync in client
18.2.8 出错-Ignoring user
18.2.9 出错-Table 'xxx' doesn't exist
18.3 MySQL 怎样处理一个装满的磁盘
18.4 怎样运行一个文本文件的SQL命令
18.5 MySQL 在哪儿存储临时文件
18.6 怎样保护
"/tmp/mysql.sock"
不被删除
18.7 Access denied 出错
18.8 作为一个普通用户怎样运行 MySQL
18.9 怎样重置(reset)一个忘记的口令.
18.10 文件许可权限问题
18.11 文件没找到
18.12 使用DATE列的问题
18.13 时区问题
18.14 在搜索中的大小写敏感
18.15 NULL值问题
18.16 别名问题
18.17 从相关的表删除行
18.18 解决没有匹配行的问题
18.19 ALTER TABLE问题
18.20 怎样改变在一个表中列的次序
19 解决MySQL 一些常见的问题
19.1 数据库复制
19.2 数据库备份
19.3 在同一台机器上运行多个 MySQL 服务器
20 MySQL 客户工具和 API
20.1 MySQL C 应用程序接口
20.2 C 应用程序接口数据类型
20.3 C 应用程序接口函数概述
20.4 C 应用程序接口函数描述
20.4.1 mysql_affected_rows ()
20.4.2 mysql_close ()
20.4.3 mysql_connect ()
20.4.4 mysql_change_user ()
20.4.5 mysql_create_db ()
20.4.6 mysql_data_seek ()
20.4.7 mysql_debug ()
20.4.8 mysql_drop_db ()
20.4.9 mysql_dump_debug_info ()
20.4.10 mysql_eof ()
20.4.11 mysql_errno ()
20.4.12 mysql_error ()
20.4.13 mysql_escape_string ()
20.4.14 mysql_fetch_field ()
20.4.15 mysql_fetch_fields ()
20.4.16 mysql_fetch_field_direct ()
20.4.17 mysql_fetch_lengths ()
20.4.18 mysql_fetch_row ()
20.4.19 mysql_field_count ()
20.4.20 mysql_field_seek ()
20.4.21 mysql_field_tell ()
20.4.22 mysql_free_result ()
20.4.23 mysql_get_client_info ()
20.4.24 mysql_get_host_info ()
20.4.25 mysql_get_proto_info ()
20.4.26 mysql_get_server_info ()
20.4.27 mysql_info ()
20.4.28 mysql_init ()
20.4.29 mysql_insert_id ()
20.4.30 mysql_kill ()
20.4.31 mysql_list_dbs ()
20.4.32 mysql_list_fields ()
20.4.33 mysql_list_processes ()
20.4.34 mysql_list_tables ()
20.4.35 mysql_num_fields ()
20.4.36 mysql_num_rows ()
20.4.37 mysql_options ()
20.4.38 mysql_ping ()
20.4.39 mysql_query ()
20.4.40 mysql_real_connect ()
20.4.41 mysql_real_query ()
20.4.42 mysql_reload ()
20.4.43 mysql_row_seek ()
20.4.44 mysql_row_tell ()
20.4.45 mysql_select_db ()
20.4.46 mysql_shutdown ()
20.4.47 mysql_stat ()
20.4.48 mysql_store_result ()
20.4.49 mysql_thread_id ()
20.4.50 mysql_use_result ()
20.4.51 为什么在mysql_query()返回成功后mysql_store_result()有时返回NULL?
20.4.52 我能从查询得到什么结果?
20.4.53 我怎样才能得到最后插入的列的唯一标识符?
20.4.54 链接 C 应用程序接口的问题
20.4.55 怎样生成一个线程安全(thread-safe)的客户
20.5 MySQL Perl 应用程序接口
20.5.1 用DBD::mysql的DBI
20.5.2 DBI接口
20.5.3 更多的DBI/DBD信息
20.6 MySQL Eiffel 包装程序
20.7 MySQL Java connectivity (JDBC)
20.8 MySQL PHP 应用程序接口
20.9 MySQL C++ APIs
20.10 MySQL Python APIs
20.11 MySQL TCL APIs
21 怎样比较MySQL与其他数据库
21.1 怎样对比MySQL和mSQL
21.1.1 怎样将mSQL工具变换到MySQL
21.1.2 mSQL和MySQL的 客户机/服务器通讯协议如何不同
21.1.3 mSQL 2.0 SQL句法如何不同于 MySQL
21.2 怎样对比MySQL和PostgreSQL
A 一些 MySQL 用户
A.1 一般新闻站点
A.2 一些Web搜索引擎
A.3 一些集中于某一领域的信息搜索引擎
A.4 使用 MySQL 作为后备的网络站点
A.5 一些域/因特网/网及相关服务
A.6 使用PHP和MySQL的网络站点
A.7 一些 MySQL 顾问
A.8 编程
A.9 未归类的网页
B 贡献的程序
B.1 API
B.2 客户程序
B.3 Web工具
B.4 认证工具
B.5 转换器
B.6 与其他产品一起使用 MySQL
B.7 有用的工具
B.8 未分类的
C MySQL贡献者
D MySQL 变迁的历史记录
D.1 版本 3.23.x 变化(作为 alpha 发布)
D.1.1 版本 3.23.7 变化
D.1.2 版本 3.23.6 变化
D.1.3 版本 3.23.5 变化
D.1.4 版本 3.23.4 变化
D.1.5 版本3.23.3 变化
D.1.6 版本 3.23.2 变化
D.1.7 版本 3.23.1 变化
D.1.8 版本 3.23.0 变化
D.2 版本 3.22.x 变化
D.2.1 版本 3.22.28 变化
D.2.2 版本 3.22.27 变化
D.2.3 版本 3.22.26 变化
D.2.4 版本 3.22.25 变化
D.2.5 版本 3.22.24 变化
D.2.6 版本3.22.23 变化
D.2.7 版本 3.22.22 变化
D.2.8 版本 3.22.21 变化
D.2.9 版本 3.22.20 变化
D.2.10 版本 3.22.19 变化
D.2.11 版本 3.22.18 变化
D.2.12 版本 3.22.17 变化
D.2.13 版本 3.22.16 变化
D.2.14 版本 3.22.15 变化
D.2.15 版本 3.22.14 变化
D.2.16 版本 3.22.13 变化
D.2.17 版本 3.22.12 变化
D.2.18 版本 3.22.11 变化
D.2.19 版本 3.22.10 变化
D.2.20 版本 3.22.9 变化
D.2.21 版本 3.22.8 变化
D.2.22 版本 3.22.7 变化
D.2.23 版本 3.22.6 变化
D.2.24 版本 3.22.5 变化
D.2.25 版本 3.22.4 变化
D.2.26 版本 3.22.3 变化
D.2.27 版本 3.22.2 变化
D.2.28 版本 3.22.1 变化
D.2.29 版本 3.22.0 变化
D.3 版本 3.21.x 变化
D.3.1 版本 3.21.33 变化
D.3.2 版本 3.21.32 变化
D.3.3 版本 3.21.31 变化
D.3.4 版本 3.21.30 变化
D.3.5 版本 3.21.29 变化
D.3.6 版本 3.21.28 变化
D.3.7 版本 3.21.27 变化
D.3.8 版本 3.21.26 变化
D.3.9 版本 3.21.25 变化
D.3.10 版本 3.21.24 变化
D.3.11 版本 3.21.23 变化
D.3.12 版本 3.21.22 变化
D.3.13 版本 3.21.21a 变化
D.3.14 版本 3.21.21 变化
D.3.15 版本 3.21.20 变化
D.3.16 版本 3.21.19 变化
D.3.17 版本 3.21.18 变化
D.3.18 版本 3.21.17 变化
D.3.19 版本 3.21.16 变化
D.3.20 版本 3.21.15 变化
D.3.21 版本 3.21.14b 变化
D.3.22 版本 3.21.14a 变化
D.3.23 版本 3.21.13 变化
D.3.24 版本 3.21.12 变化
D.3.25 版本 3.21.11 变化
D.3.26 版本 3.21.10 变化
D.3.27 版本 3.21.9 变化
D.3.28 版本 3.21.8 变化
D.3.29 版本 3.21.7 变化
D.3.30 版本 3.21.6 变化
D.3.31 版本 3.21.5 变化
D.3.32 版本 3.21.4 变化
D.3.33 版本 3.21.3 变化
D.3.34 版本 3.21.2 变化
D.3.35 版本 3.21.0 变化
21.3 版本 3.20.x 变化
D.3.36 版本 3.20.18 变化
D.3.37 版本 3.20.17 变化
D.3.38 版本 3.20.16 变化
D.3.39 版本 3.20.15 变化
D.3.40 版本 3.20.14 变化
D.3.41 版本 3.20.13 变化
D.3.42 版本 3.20.11 变化
D.3.43 版本 3.20.10 变化
D.3.44 版本 3.20.9 变化
D.3.45 版本 3.20.8 变化
D.3.46 版本 3.20.7 变化
D.3.47 版本 3.20.6 变化
D.3.48 版本 3.20.3 变化
D.3.49 版本 3.20.0 变化
D.4 版本 3.19.x 变化
D.4.1 版本 3.19.5 变化
D.4.2 版本 3.19.4 变化
D.4.3 版本 3.19.3 变化
E MySQL中已知的错误和设计缺限
F 我们想要在未来加入 到MySQL 的事情列表( TODO )
F.1 必须在不久的将来要做的事情
F.2 必须在某个时候要做的事情
F.3 一些我们还没有任何计划做的事情
G 对移植到其他系统的说明
G.1 调试一个 MySQL 服务器
G.2 调试一个 MySQL 客户
G.3 关于RTS线程解释
G.4 不同的线程包之间的差别
H MySQL 正则表达式句法的描述
I 什么是 Unireg?
J 针对非微软操作系统的 MySQL 服务器许可证
K 针对微软操作系统的 MySQL 许可证
SQL命令,类型和函数索引
概念索引