1 MySQL 的一般信息
这是MySQL参考手册;它记载了MySQL版本3.23.7-alpha。
MySQL 是一个快速、多线程、多用户和强壮的SQL数据库服务器。
对Unix和 OS/2 平台,MySQL基本上是免费的;但对微软平台,你在30 天的试用期后必须获得一个MySQL 许可证。详见第三节 MySQL许可证和技术支持。
MySQL 主页提供有关MySQL的最新信息。
对于MySQL能力的讨论,详见1.4 MySQL 的主要特征。
对于安装指南,见4 安装 MySQL。对于有关移植MySQL到新机器或操作系统的技巧,参见G 对移植到其他系统的说明。
有关从 3.21 版升级的信息,详见4.16.2 从一个 3.21 版本升级到 3.22。
MySQL的入门教程,见8 MySQL 教程。
SQL和基准信息的例子,见基准目录(在分发中的'sql-bench'目录)。
对于新特征和错误修复一个历史记录,见D MySQL的变迁。
对于当前已知错误和功能缺陷的一张列表,见E MySQL已知错误和设计缺陷。
未来计划,见F我们想要在未来加入到MySQL 的计划表( TODO )。
这个计划的所有贡献者的名单,见C MySQL 的贡献者。
重要:
将臭虫(错误)报告、问提和建议发到邮件列表(原文未提供)。
对源代码分发,mysqlbug
脚本可在‘scripts’目录下找到。 对二进制的分发,mysqlbug
可在‘bin’目录下找到。
如果你有任何关于这本手册的增补或修正的任何建议,请将它们发给手册小组(docs@mysql.com)。
1.1 什么是 MySQL?
MySQL是一个真正的多用户、多线程SQL数据库服务器。SQL(结构化查询语言)是世界上最流行的和标准化的数据库语言。MySQL是以一个客户机/服务器结构的实现,它由一个服务器守护程序mysqld
和很多不同的客户程序和库组成。
SQL是一种标准化的语言,它使得存储、更新和存取信息更容易。例如,你能用SQL语言为一个网站检索产品信息及存储顾客信息,同时MySQL也足够快和灵活以允许你存储记录文件和图像。
MySQL 主要目标是快速、健壮和易用。最初是因为我们需要这样一个SQL服务器,它能处理与任何可不昂贵硬件平台上提供数据库的厂家在一个数量级上的大型数据库,但速度更快,MySQL就开发出来。自1996年以来,我们一直都在使用MySQL,其环境有超过 40 个数据库,包含 10,000个表,其中500多个表超过7百万行,这大约有100 个吉字节(GB)的关键应用数据。
MySQL建立的基础是业已用在高要求的生产环境多年的一套实用例程。尽管MySQL仍在开发中,但它已经提供一个丰富和极其有用的功能集。
MySQL的官方发音是“My Ess Que Ell”(不是 MY-SEQUEL )。
1.2 关于本手册
目前这本手册有Texinfo、普通文本、Info、HTML、PostScript和 PDF 等格式的版本。因为它们的长度,PostScript和 PDF 版本没有包括在主要的MySQL分发中,但是可从http://www.mysql.com获得单独的下载。
主要的文档是Texinfo文件, HTML版本自动地用一个texi2html
改进版本生成。普通文本和Info版本用makeinfo
生成。 Postscript版本由texi2dvi
和dvips
生成。PDF 版本用pdftex
生成。
本手册由David Axmark, Michael (Monty) Widenius, Paul DuBois and Kim Aldale维护。 而其他的贡献者,见C MySQL贡献者。
1.2.1 本手册中使用的约定
这本手册使用了一定文字格式的约定:
constant / 固定宽度
- 固定宽度字体用于命令名字和选择、SQL语句、数据库、表和列命名、C 和 Perl 代码、环境变量。例如:“为了了解
mysqladmin
如何工作,用--help
选项调用它”。 - '文件名'
- 有包围引号的固定宽度字体用于文件名和路径。例如:“发行版本被安装在'/usr/local/'目录下”。
- 'c'
- 有包围引号的固定宽度字体也用于指明字符序列。例如:“要指定一个通配符,使用'%'字符”。
- 斜体
- 斜体的字体被用于强调,like this 。
- 粗体
- 粗体用于存取权限名字(例如,“不要轻易授权process权限”)并表达特别强调。
当命令显示出准备由一个特定的程序执行时,程序由命令所显示的提示符指出。例如,shell>
表明你从你的登录外壳执行一个命令,而mysql>
表明你从mysql
客户执行命令:
shell> 在这键入一个shell命令
mysql> 在这里键入一个mysql命令
shell命令用 Bourne shell语法显示。如果你正在使用csh
风格的外壳,你可能需要用略微不同的方式发出命令。例如,设置一个环境变量和运行一个命令的序列在 Bourne shell语法看起来像这样:
shell> VARNAME=value some_command
对于csh
,你将执行这样的序列:
shell> setenv VARNAME value
shell> some_command
数据库、表和列名字经常必须被代入命令中。为表明这种代入是必要的,本手册使用db_name
、tbl_name
和col_name
。例如,你可能看到象这样的语句:
mysql> SELECT col_name FROM db_name.tbl_name;
这意味着如果你想输入类似的语句,你将提供你自己数据库、表和列的名字,也许像这样:
mysql> SELECT author_name FROM biblio_db.author_list;
SQL语句可以写成大写或小写的。当本手册显示SQL语句时,如果讨论这些关键字,大写被用于特定的关键字(强调它们)而小写被用于语句的其他部分。因此你可能在讨论SELECT语句时看到如下显示:
mysql> SELECT count(*) FROM tbl_name;
另一方面,在讨论COUNT()
函数时,语句将写成这样:
mysql> select COUNT(*) from tbl_name;
如果不有意地特别强调,所有的关键字一律写成大写。
在句法描述中,方括号('['和']')被用来表示任选的词或子句:
DROP TABLE [IF EXISTS] tbl_name
当一个语法元素由很多选择组成时,各选择用垂直线分开('|')。当可能从一组选择中选择一个成员时,选择在方括号内被列出。当必须从一组选择中选择一个成员时,选择在花括号内被列出('{'和'}'):
TRIM([[BOTH | LEADING | TRAILING] [remstr] FROM] str)
{DESCRIBE | DESC} tbl_name {col_name | wild}
1.3 MySQL 的历史
我们曾经开始打算利用mSQL
用我们自己的快速底层(ISAM)实用程序连接我们的数据库表,然而,在一些测试以后我们得到出结论:mSQL
对我们的需求来说不够快速和灵活。这导致了一个连接我们数据库的新SQL接口,但它几乎有与mSQL
相同的应用编程接口。选择这个应用编程接口以方便第三方的代码移植。
MySQL名字的由来不是非常清楚。我们的基目录和很多的库和工具具有前缀“my”已超过10年历史,然而,Monty的女儿(年轻几岁的)也被命名"my"。因此其中哪一个原因给MySQL起了这个名字仍然是一个谜,甚至对我们。
1.4 MySQL 的主要特征
下表描述MySQL一些重要的特征:
- 使用核心线程的完全多线程。这意味着它能很容易地利用多CPU(如果有)。
- C 、C++、 Eiffel 、 Java、 Perl、 PHP、Python、和 TCL API。见20 MySQL 客户工具和 API。
- 可运行在不同的平台上,见4.2 MySQL支持的操作系统。
- 多种列类型:1、 2、 3、4、和 8 字节长度的有符号/无符号整数、
FLOAT
、DOUBLE
、CHAR
、VARCHAR
、TEXT
、BLOB
、DATE
、TIME
、DATETIME、
TIMESTAMP
、YEAR
、SET
和ENUM
类型。 见7.3 列类型。 - 利用一个优化的一遍扫描多重联结(one-sweep multi-join)非常快速地进行联结(join)。
- 在查询的
SELECT
和WHERE部分
支持全部运算符和函数,例如:mysql> SELECT CONCAT(first_name, " ", last_name) FROM tbl_name
WHERE income/dependents > 10000 AND age > 30; - 通过一个高度优化的类库实现SQL函数库并且像他们能达到的一样快速,通常在查询初始化后不应该有任何内存分配。
- 全面支持SQL的
GROUP BY
和ORDER BY
子句,支持聚合函数(COUNT()
、COUNT(DISTINCT)
、AVG()
、STD()
、SUM()
、MAX()
和MIN()
)。 - 支持ANSI SQL的
LEFT OUTER JOIN
和ODBC语法。
- 你可以在同一查询中混用来自不同数据库的表。(与版本 3.22一样 )。
- 一个非常灵活且安全的权限和口令系统,并且它允许基于主机的认证。口令是安全的,因为当与一个服务器连接时,所有的口令传送被加密。
- ODBC for Windiws 95。所有的 ODBC 2 . 5 函数和其他许多函数。例如,你可以用Access连接你的 MySQL服务器。见16 MySQL ODBC 支持。
- 具备索引压缩的快速B树磁盘表。
- 每个表允许有16个索引。每个索引可以由1~16个列或列的一部分组成。最大索引长度是 256 个字节(在编译MySQL时,它可以改变)。一个索引可以使用一个
CHAR
或VARCHAR
字段的前缀。 - 定长和变长记录。
- 用作临时表的内存散列表。
- 大数据库处理。我们正在对某些包含 50,000,000 个记录的数据库使用MySQL。
- 所有列都有缺省值,你可以用
INSERT
插入一个表列的子集,那些没用明确给定值的列设置为他们的缺省值。 - 为了可移植性使用 GNU Automake , Autoconf 和
libtool。
- 用C和C++编写,并用大量不同的编译器测试。
- 一个非常快速的基于线程的内存分配系统。
- 没有内存漏洞。用一个商用内存漏洞监测程序测试过(
purify
)。 - 包括
myisamchk
,一个检查、优化和修复数据库表的快速实用程序,详见13 维护 MySQL安装。 - 全面支持ISO-8859-1 Latin1 字符集。例如,斯堪的纳维亚的字符 @ringaccent{a}, @"a and @"o 在表和列名字被允许。
- 所有数据以 ISO-8859-1 Latin1 格式保存。所有正常的字符串比较是忽略大小写的。
- 根据 ISO-8859-1 Latin1 字符集进行排序(目前瑞典语的方式)。通过在源代码中增加排序顺序数组可以改变它。为了理解一个更高级的排序例子,看一看捷克语的排序代码。MySQL支持可在编译时指定的很多不同的字符集。
- 表和列的别名符合 SQL92 标准。
-
DELETE
、INSERT
、REPLACE
和UPDATE
返回有多少行被改变(受影响)。 - 函数名不会与表或列名冲突。例如
ABS
是一个有效的列名字。对函数调用的唯一限制是函数名与随后的“(”不能有空格。详见7.31 MySQL对保留字很挑剔吗?。 - 所有MySQL程序可以用选项
--help
或-?
获得联机帮助。 - 服务器能为客户提供多种语言的出错消息,详见9.1 MySQL支持哪些语言?。
- 客户端使用TCP/IP 连接或Unix套接字(socket)或NT下的命名管道连接MySQL。
-
MySQL特有的
SHOW
命令可用来检索数据库、表和索引的信息,EXPLAIN
命令可用来确定优化器如何解决一个查询。
1.5 MySQL的稳定性?
本小节回答这样的问题:“MySQL的稳定程度?”和 “我能在本项目中依赖MySQL吗?”。这里我们将试图澄清一些问题并且回答似乎很多人关心的更重要的问题。本节已经与从邮件列表(它在报导错误是很活跃的)收集了的信息综合在一起。
对TcX,MySQL在我们自1996中期开始的计划中运行没有发生任何问题。当MySQL被更公开地发布时,我们注意到了有一些 “未测试代码”片断很快地被不同于我们的查询方式的新用户发现。每个新版本比前一个都有更少的可移植性问题(尽管每个发行有许多新功能),并且我们希望有可能把下一个版本之一标记为“稳定”的。
每个MySQL的发行都是可用的,并且只有当用户使用从“灰色地带”来的代码时才有问题,当然,不知情的用户不能知道灰色地带是什么;本小节尝试揭示我们目前已知的东西。这里的描述涉及MySQL 3. 22.x 版本。所有已知和报告的错误都会在最新的版本被更正,除了在错误小节中列出的与“设计n”有关的错误。详见E MySQL已知的错误和设计缺陷。
MySQL以多层结构和不同的独立模块编写,这些模块列举在下面以表明它们中的每一个是如何很好地被测试过:
- ISAM表处理器--稳定
- 它管理所有在MySQL 3.22和早期版本中的数据的存储和检索。在所有MySQL版本中,代码中已经没有一个单独(报告的)错误。得到一个损坏的数据库表的唯一已知方法是在一个更新中途杀死服务器,即使这样也不大可能破坏任何数据而不能挽救,因为所有数据在每个查询之间被倒入(flush)到磁盘,而且从来没有一个有关由于MySQL中的错误而丢失数据的错误报告。
- MyISAM 表处理器-- Beta
- 这是 MySQL 3.23的新功能,它大部分是基于ISAM表代码但有很多新的有用的功能。
- 语法处理器和词法分析器 --稳定
- 很长时间没有一个在这个系统中的错误报告。
- C 客户代码--稳定
- 没有已知的问题。在早期的 3. 20版本中,在发送/接收缓冲器的大小上有一些限制。 3.21.x后,现在缓冲器的大小是动态的,可到一个24M的缺省值。
- 标准客户程序--稳定
- 这些包括
mysql
、mysqladmin
和mysqlshow
、mysqldump
及mysqlimport
。 - 基本结构式查询语言--稳定
- 基本SQL函数系统、字符串类和动态内存处理,本系统中未见单独报告的错误。
- 查询优化程序--稳定
- 范围优化程序-- Gamma
- Join优化器--稳定
- 锁定-- Gamma
- 这是非常依赖于系统的,在某些系统上,用标准操作系统锁定(
fcntl()
)有很大问题,在这些情况下,你应该用选项--skip-locking
运行MySQL守护程序。当使用NFS挂载的文件系统,已知在一些 Linux 系统上和SunOS上出现问题。 - Linux 线程-- Gamma
- 唯一发现的问题式
fcntl()
调用,它通过使用mysqld
的--skip-locking
选项解决。一些人已经报告了0.5版中的锁定问题。 - Solaris 2.5 + pthreads --稳定
- 我们在我们的开发工作中使用。
- MIT-pthreads (其他系统)-- Gamma
- 自从 3.20.15版以来,没有报告的错误,而且从3.20.16开始没有已知的错误。在一些系统上,在一些操作是相当慢时(在每查询之间有 1/20秒的睡眠 )有一个“功能失效”。当然,MIT-pthreads 可能使任何事情慢一点,但是基于索引
的SELECT
语句通常在一个时帧内完成,因此不应该有一个mutex 锁定/线程的把戏。 - 其他线程实现 -- Alpha - Beta
- 移植到其他系统仍然是很新的并且可能有错误,可能是在MySQL中,但是最通常的是线程实现本身。
LOAD DATA ...
,INSERT ... SELECT
--稳定- 一些人已经认为他们在这里发现了错误,但是这些经常多是误解。请在报告问题前检查手册!
ALTER TABLE
--稳定- 在 3.22.12中有小的改变。
- DBD --稳定
- 现在由 Jochen Wiedmann 维护了。
mysqlaccess
--稳定- 由 Yves Carlier 编写并维护。
GRANT
-- Gamma- MySQL 3.22.12.做了很大改变。
- MyODBC (使用 ODBC SDK 2.5 )-- Gamma
- 它与一些程序似乎工作得很好。
TcX 为付费客户提供电子邮件的支持,但是MySQL邮件列表通常提供常见问题的答案,错误通常马上用一个补丁修补,对严重的错误,几乎总是有新的版本发行。
1.6 顺应2000年(Year 2000 compliance)
MySQL本身己没有2000年有问题( Y2K ):
-
MySQL使用Unix时间函数并且在
2069
年前没有日期问题, 所有2位年份被认为在1970
年到2069
年的范围,这意味着如果在一个year
类型的列中存储的01,MySQL把它当作2001
。 - 所有MySQL日期函数存储在一个文件'sql/time.cc'中,并且很仔细地编码保证是2000年安全的 。
-
MySQL 3.22 和以后的版本,新的
YEAR
类型的列能在一个字节中存储0年和1901年
到2155年
,并用使用2或4位显示它们。
你可以用一种不是Y2K-safe的方式使用 MySQL应用程序来深入该问题。例如,许多老的应用程序使用2位数字(它有二义性)而非4位数字存储或操作年份,这个问题可能与使用诸如00
或99
作为“丢失的”值的提示的应用程序混淆起来。
很不幸,这些问题可能很难修复,因为不同的应用程序可能由不同程序员编写,其中每一个可能使用了不同的约定和日期处理函数。
这里是简单的示范,显示MySQL在 2030 年之前没有任何日期问题。
mysql> DROP TABLE IF EXISTS y2k;
mysql> CREATE TABLE y2k (date date, date_time datetime, time_stamp timestamp);
mysql> INSERT INTO y2k VALUES ("1998-12-31","1998-12-31 23:59:59",19981231235959);
mysql> INSERT INTO y2k VALUES ("1999-01-01","1999-01-01 00:00:00",19990101000000);
mysql> INSERT INTO y2k VALUES ("1999-09-09","1999-09-09 23:59:59",19990909235959);
mysql> INSERT INTO y2k VALUES ("2000-01-01","2000-01-01 00:00:00",20000101000000);
mysql> INSERT INTO y2k VALUES ("2000-02-28","2000-02-28 00:00:00",20000228000000);
mysql> INSERT INTO y2k VALUES ("2000-02-29","2000-02-29 00:00:00",20000229000000);
mysql> INSERT INTO y2k VALUES ("2000-03-01","2000-03-01 00:00:00",20000301000000);
mysql> INSERT INTO y2k VALUES ("2000-12-31","2000-12-31 23:59:59",20001231235959);
mysql> INSERT INTO y2k VALUES ("2001-01-01","2001-01-01 00:00:00",20010101000000);
mysql> INSERT INTO y2k VALUES ("2004-12-31","2004-12-31 23:59:59",20041231235959);
mysql> INSERT INTO y2k VALUES ("2005-01-01","2005-01-01 00:00:00",20050101000000);
mysql> INSERT INTO y2k VALUES ("2030-01-01","2030-01-01 00:00:00",20300101000000);
mysql> INSERT INTO y2k VALUES ("2050-01-01","2050-01-01 00:00:00",20500101000000);
mysql> SELECT * FROM y2k;
+------------+---------------------+----------------+
| date | date_time | time_stamp |
+------------+---------------------+----------------+
| 1998-12-31 | 1998-12-31 23:59:59 | 19981231235959 |
| 1999-01-01 | 1999-01-01 00:00:00 | 19990101000000 |
| 1999-09-09 | 1999-09-09 23:59:59 | 19990909235959 |
| 2000-01-01 | 2000-01-01 00:00:00 | 20000101000000 |
| 2000-02-28 | 2000-02-28 00:00:00 | 20000228000000 |
| 2000-02-29 | 2000-02-29 00:00:00 | 20000229000000 |
| 2000-03-01 | 2000-03-01 00:00:00 | 20000301000000 |
| 2000-12-31 | 2000-12-31 23:59:59 | 20001231235959 |
| 2001-01-01 | 2001-01-01 00:00:00 | 20010101000000 |
| 2004-12-31 | 2004-12-31 23:59:59 | 20041231235959 |
| 2005-01-01 | 2005-01-01 00:00:00 | 20050101000000 |
| 2030-01-01 | 2030-01-01 00:00:00 | 20300101000000 |
| 2050-01-01 | 2050-01-01 00:00:00 | 00000000000000 |
+------------+---------------------+----------------+ 13 rows in set (0.00 sec)
这表示DATE
和DATETIME
类型将不会有未来日期的任何问题(它们处理日期到 9999 )。
TIMESTAMP
类型被用来存储当前时间,有一个仅2030-01-01
的上限。TIMESTAMP
在32位的机器上(有符号值)有一个从1970
到2030
的范围,在64位机器上它处理时间可达2106
(无符号值)。
尽管MySQL是顺应Y2K的,但提供无二义性的输入是你的责任。对于MySQL处理二义性日期的输入(包含2位数字年份)的规则,详见7.3.6.1 Y2K 问题和日期类型。
1.7 SQL一般信息和教程
在MySQL邮件列表上,这本书被多人推荐:
Judith S. Bowman, Sandra L. Emerson and Marcy Darnovsky
The Practical SQL Handbook: Using Structured Query Language
Second Edition
Addison-Wesley
ISBN 0-201-62623-3
http://www.awl.com
这本书也接受了 MySQL 用户的一些建议:
Martin Gruber
Understanding SQL
ISBN 0-89588-644-8
Publisher Sybex 510 523 8233
Alameda, CA USA
一本SQL语言教程可在 http://www.geocities.com/SiliconValley/Vista/2207/sql1.html 找到。
SQL in 21 Tagen (用德语写的网上书籍) http://www.mut.de/leseecke/buecher/sql/inhalt.htm 。
1.8 有用的MySQL相关链接
1.8.1 教程
- A beginner's tutoral of how to start using MySQL
- http://www.analysisandsolutions.com/code/mybasic.htm新手如何在一台Windows 机器上安装和设置MySQL。
- 很多MySQL教程
- 建立一个基于 MySQL的网站
- MySQL- perl 教程
- PHP/MySQL 教程
1.8.2 Perl相关链接
1.8.3 MySQL 讨论论坛
1.8.4 支持 MySQL 的商业应用
- SupportWizard; Interactive helpdesk on the web (This product includes a licensed copy of MySQL)
- Right Now Web; Web automation for customer service
- Bazaar; Interactive Discussion Forums with web interface
- PhoneSweepT 是世界的第一个商业电话扫描仪.近年来的很多侵入不是通过因特网,而是通过非法的拨号调制解调器. PhoneSweep 让你通过循环地将电话发到你的公司控制的每个号码上来发现这些调制解调器, PhoneSweep有一个内置的专家系统,能识别出超过 250 种不同类型的遥远存取程序,包括Carbon CopyT 、pcANYWHERET 和 Windows NT RAS .所有信息保存在SQL数据库,最后产生一份详细易懂的报告,说明你公司内那个拨号调制解调器的那项服务被刺探。
1.8.5 SQL客户程序
- 微软Windows 平台上MySQL编辑器/实用程序
- KDE MySQL 客户
- Kiosk:一个用于数据库管理的 MySQL客户 用 Perl编写,将成为Bazaar的一部分。
1.8.6 支持MySQL的Web 开发工具
- PHP :一种服务器端的嵌入HTML的脚本语言
- Midgard 应用服务器:基于 MySQL 和 PHP强大的网站开发环境
- SmartWorker 是一个Web应用开发平台
- XSP: e(X)tendible (s)erver (p)ages :是一个用Java 编写的嵌入 HTML的标签语言(以前 XTAGS出名)
- dbServ:是对Web服务器的扩充,它将到数据库输出集成进你的 HTML编码。你可以在你的输出使用任何 HTML函数,只有客户端能阻止你。它作为独立的服务器或作为 Java servlet 运行。
- Chili!Soft 平台无关的ASP
- MySQL + PHP demos
- ForwardSQL:操作的MySQL数据库的 HTML 接口
- WWW-SQL:显示数据库信息
- Minivend :Web购物车
- HeiTML:是HTML的服务器端扩充,同时又是一种第四代语言语言
- Metahtml:一种WWW应用程序的动态编程语言
- VelocityGen for Perl and TCL
- Hawkeye 因特网服务器套件
- Linux网络数据库连接
- WDBI:是作为一个很好支持MySQL数据库的通用前端的Web浏览器
- WebGroove 脚本: HTML编译器和服务器端脚本语言
- 一种服务器端网站脚本语言
- 怎样在 Solaris 上用Coldfusion使用MySQL
- Calistra 的 ODBC MySQL管理器
- Webmerger:这个CGI工具解释文件并且生成基于一套简单标签的动态输出,通过 ODBC 提供MySQL和PostgreSQL的Ready-to-run 驱动程序。
- PHPclub:PHP 的技巧
- MySQL 和 Perl 脚本
- Widgetchuck :网站工具和小配件
- AdCycle:广告管理软件
1.8.7 用 MySQL 支持的数据库设计工具
1.8.8 使用MySQL工具的Web服务器
1.8.9 对其他程序的扩充
- 一个有源代码的MySQL的 Delphi 接口. 由 Matthias Fichtner 编写。
- TmySQL:一个通过Delphi使用MySQL的库
- Delphi TDataset部件
- 支持BIND(Internel域名服务器)
- 使用 MySQL 的 Sendmail扩充
1.8.10 通过其他程序使用MySQL
1.8.11 ODBC有关的链接
1.8.12 API有关的链接
- www.jppp.com:为MySQL部分实现了TDataset兼容的部件。
- qpopmysql:一个允许MySQL数据库进行 POP3 认证补丁。还有一个到Paul Khavkine的Procmail补丁的连接,允许任何MTA向MySQL数据库中的用户投递信件。
- 针对Active X的Visual Basic 类生成器
- Macintosh 的客户库
- Free Pascal的MySQL绑定
- SCMDB:SCMDB 是SCM的一个插件,SCM移植 mysql的C语言库到概念框架(scheme)。利用这个库,框架开发者能连接到一个mySQL数据库并且在他们的程序钟使用嵌入式SQL。
1.8.13 其它MySQLx有关的链接
- Registry of Web providers who support MySQL
- Links about using MySQL / MySQL in Japan/Asia
- Commercial Web defect tracking system
- PTS: Project Tracking System
- Job and software tracking system
- ExportSQL: A script to export data from Access95+
- SAL (Scientific Applications on Linux) MySQL entry
- A consulting company which mentions MySQL in the right company
- PMP Computer Solutions. Database developers using MySQL and
mSQL
- Airborne Early Warning Association
- MySQL UDF Registry
- Y2K tester
1.8.14 SQL和数据库接口
- KMySQL:KMySQL 是主要支持MySQL的KDE数据库库护程序。
- JDBC 数据库存取应用程序接口
mSQL
TCL 补丁- EasySQL :一个类ODBC驱动程序管理器
- SQL数据库的一个 REXX 接口
- TCL 接口
1.8.15 使用MySQL的例子
- Little6 Inc An online contract and job finding site that is powered by MySQL, PHP3 and Linux.
- DELECis A tool which makes it very easy to create an automatically generated table documentation. They have used MySQL as an example.
- Steve Fambro Uses MySQL and webmerger. There is an employee database, and a license plate database with all of the registered Utah vehicles (over 1.2 million). The License plate field is indexed.....so the *searches* are instantaneous.
- World Records A search engine for information about music that uses MySQL and PHP.
- A Contact Database using MySQL and PHP
- Web based interface and Community Calender with PHP
- Perl package to generate html from a SQL table structure and for generating SQL statements from an html form.
-
Basic telephone database using
DBI
/DBD
. - Installing new Perl modules that require locally installed modules
- JDBC examples by Daniel K. Schneider
- SQL BNF
- Object Oriented Concepts Inc; CORBA applications with examples in source
- DBWiz; Includes an example of how to manage own cursors in VB
- Pluribus Pluribus, is a free search engine that learns to improve the quality of its results over time. Pluribus works by recording which pages a user prefers among those returned for a query. A user votes for a page by selecting it; Pluribus then uses that knowledge to improve the quality of the results when someone else submits the same (or similar) query. Uses PHP and MySQL.
- Stopbit A technology news site using MySQL and PHP
- Example scripts at Jokes2000
- FutureForum Web Discussion Software
- http://www.linuxsupportline.com/~kalendar/ KDE based calendar manager The calendar manager has both single user (file based) and multi user (MySQL database) support.
- Example of storing/retrieving images with MySQL and CGI
- Online shopping cart system
- Old Photo Album The album is a collaborative popular history of photography project that generates all pages from data stored in a MySQL database. Pages are dynamically generated through a php3 interface to the database content. Users contribute images and descriptions. Contributed images are stored on the web server to avoid storing them in the database as BLOBs. All other information is stored in on the shared MySQL server.
1.8.16 一般的数据库链接
- Database Jump Site
- Homepage of the webdb-l (Web Databases) mailing list.
- Perl
DBI
/DBD
modules homepage - Cygwin tools. UNIX on top of Windows
- dbasecentral.com; Development and distribution of powerful and easy-to-use database applications and systems.
- Tek-Tips Forums Tek-Tips Forums are 800+ independent peer-to-peer non-commercial support forums for Computer Professionals. Features include automatic e-mail notification of responses, a links library, and member confidentiality guaranteed.
也有很多网页使用 MySQL。详见A 一些 MySQL 用户。将任何新增发送到这张表中,并在某处加上 MySQL 标识(在一个“使用工具”的页面或类似的地方)。