MySQL是目前最流行的开放源代码数据库管理系统,全世界的装机量已超过400万台。本书详细介绍了如何使用可定制的MySQL数据库管理系统支持健壮的、可靠的、任务关键的应用程序。全书共分四部分21章,分别从MySQL的安装与配置,创建与使用数据库和表,数据的查询与运算,事务处理,MySQL的管理与配置,备份与恢复,性能优化,MySQL与C,Perl,PHP的开发接口等不同角度阐述了MySQL的特点。本书在内容上注重全面性,几乎涉及了与MySQL相关的所有主题,是一本完整的MySQL参考手册。\r\n 本书适合于准备用MySQL进行系统开发的设计人员和编程人员学习和参考,也适合用做软件专业本专科水平的教科书。
第一部分 安装\r\n 第1章 数据库导论\r\n 1.1 概述\r\n 1.2 小型数据库\r\n 1.3 小结\r\n 第2章 MySQL技术教程\r\n 2.1 MySQL体系结构综述\r\n 2.2 MySQL引擎\r\n 2.3 小结\r\n 第3章 MySQL安装和配置\r\n 3.1 获得MySQL\r\n 3.2 安装和配置MySQL\r\n 3.3 测试MySQL\r\n 3.4 安装之后的步骤\r\n 3.5 小结\r\n第二部分 使用\r\n 第4章 SQL基础\r\n 4.1 SQL简史\r\n 4.2 SQL综述\r\n 4.3 (My)SQL教程\r\n 4.4 小结\r\n 第5章 MySQL数据类型\r\n 5.1 数据类型的要求和基本原理\r\n 5.2 MySQL数据类型\r\n 5.3 小结\r\n第6章 MySQL运算符\r\n 6.1 算术运算符\r\n 6.2 比较运算符\r\n 6.3 逻辑运算符\r\n 6.4 位运算符\r\n 6.5 小结\r\n第7章 MySQL函数\r\n 7.1 数学函数\r\n 7.2 聚合函数 \r\n 7.3 字符串函数\r\n 7.4 日期和时间函数\r\n 7.5 加密函数\r\n 7.6 控制流函数\r\n 7.7 格式化函数\r\n 7.8 类型转化函数\r\n 7.9 系统信息函数\r\n 7.10 小结\r\n第8章 使用数据库和表\r\n 8.1 创建数据库\r\n 8.2 选择需要的数据库\r\n 8.3 删除数据库\r\n 8.4 创建表\r\n 8.5 复制表 \r\n 8.6 修改表\r\n 8.7 删除表\r\n 8.8 获得数据库、表、字段和索引的信息\r\n 8.9 小结\r\n 第9章 使用数据\r\n 9.1 插入、更新和删除记录\r\n 9.2 检索记录\r\n 9.3 复制、导入和导出记录\r\n 9.4 小结\r\n 第10章 连接\r\n 10.1 什么是连接\r\n 10.2 连接的类型\r\n 10.3 小结\r\n 第11章 子查询\r\n 第12章 事务处理\r\n第三部分 管理\r\n 第13章 管理与配置\r\n 第14章 安全、访问控制和权限\r\n 第15章 维护、备份和恢复\r\n 第16章 性能优化\r\n 第17章 MySQL复制\r\n第四部分 开发\r\n 第18章 MySQL API\r\n 第19章 MySQL与C\r\n 第20章 MySQL与Perl\r\n 第21章 MySQL 与PHP\r\n
MySQL是目前最流行的开放源代码数据库管理系统,全世界的装机量已超过400万台。本书详细介绍了如何使用可定制的关系数据库管理系统支持健壮的、可靠的、任务关键的应用程序。在编排上从最基本的SQL概念讲起,介绍如何在Linux/UNIX或Windows平台上安装、配置和测试MySQL数据库,如何使用MySQL的数据类型、语句、运算符和函数,利用数据定义语言(DDL)管理数据库和表,利用数据操纵语言(DML)添加、删除和查询记录,利用事务支持,实现MySQL的五层访问控制和权限系统,如何处理数据库优化、备份、恢复和复制以及用C,C++,Perl,Java,PHP和其他语言创建应用程序。本书是为MySQL用户、开发者和数据库管理员准备的一本综合性参考书。它包含了关于MySQL(包括MySQL 4.x)的详尽信息,全面涵盖了与MySQL配置相关的从软件安装和配置到数据备份和复制的所有主题。
本书是以一个共同的目的面向大量读者的:一种在自己的系统上学习如何最好地配置和使用MySQL的期望。不管你是一个寻找免费的数据库系统并在上面练习SQL的学生,一个对创建基于MySQL的应用程序感兴趣的开发者,一个关心把数据移植到MySQL以降低成本的数据库管理员,本书都包含了研究和运行强大的开放源代码应用程序所需要的理论和实践示例。相信本书会成为读者案头一本实用的参考手册。
本书由徐小青(第一部分和第二部分)、路晓村(第三部分和第四部分)翻译,由薛荣华审校。参加本书译录校工作并给予大力协助的还有王景中、薛菲、闫慧娟、曹汉征、姚栋、许秀英、王泰东、李可、郭淼、矫克民、刘东顺、王建成、薛亮、沈兰英等同志。电子工业出版社的编辑们为此书的出版做了大量艰苦细致的工作,译者谨向他们表示衷心的感谢。译者水平有限,不妥之处欢迎读者批评指正。谢谢!
Vikram Vaswani是Melonfire公司的创始人和CEO,该公司是一家专门为各种客户从事Web设计、开发和内容创建的公司。Vasani还写过关于开放源代码技术的其他专著。
自1996年开始,从一个简单的SQL工具到当前的“世界上最受欢迎的开放源代码数据库”地位,MySQL已经走过了一段很长的路。根据MySQL AB(MySQL的开发者)发布的信息,到2003年,MySQL的装机量在全世界已超过400万台。MySQL为Internet网站、搜索引擎、数据仓库、任务关键的软件应用和系统提供动力,它得到了像Sony,Xerox,HP和NASA这样的公司或组织的积极使用。简而言之,它无处不在,它的应用将会变得更广泛。
我们不难发现这样疾速增长的原因。相对于像Oracle和Microsoft SQL Server一样的更商业化、非开放源代码的系统来说,快速、健壮和友好的数据库引擎、高级的数据管理和恢复工具、不断改进的特性集合、遵守现有的SQL标准、友好的商业许可原则,都是促成MySQL成为可实施的选择因素。MySQL的较低总体拥有成本和更稳定、更安全的系统特性,使越来越多的企业把它们的系统移植到MySQL,并且收获着MySQL开放源代码带来的效益。
这就是本书的作用所在。如果你是一位承担着把RDBMS系统移植到MySQL的任务的业务专家,一个对创建基于MySQL的应用程序感兴趣的开发者,或者仅仅是一个对MySQL和它能为我们做什么感到好奇的爱好者,本书就是将你引入MySQL世界的惟一地图。
综述
本书是为MySQL用户、开发者和数据库管理员设计的一本综合性的参考书,它包含了关于MySQL RDBMS(包括MySQL 4.x)的详尽信息,全面覆盖了与MySQL配置相关的所有主题,包括软件安装和配置、数据备份和复制等。
本书还详细探讨了结构化查询语言(SQL)的MySQL特殊用法,深入研究了创建和管理数据库和表的命令,插入、更新和删除记录,创建满足特定条件的报表,使用连接和子查询,通过关键字执行数据完整性和优化查询,以求更快的速度和效率。
本书也没有忘记MySQL开发者,在书中包含特殊的几章,它专门适合基于MySQL的应用程序开发,为致力于MySQL体系结构,并且对它感兴趣的开发者提供了现实的指南和技巧。
读者
本书是以一个共同的目的面向大量读者的:一种在自己的系统上学习如何最好地配置和使用MySQL的期望。不管你是一个寻找免费的RDBMS并在上面练习SQL的学生,一个对创建基于MySQL的应用程序感兴趣的开发者,一个关心把数据移植到MySQL以降低成本的数据库管理员,本书都包含了研究和运行这个强有力的开放源代码应用程序所需要的理论和实践示例。
与其他很多书籍不同,本书没有假定读者预先具有SQL知识和数据库基础。相反,它通过举例、使用教程和现实世界的实例来解释基本概念,从而增进读者对MySQL RDBMS的熟悉程度。在后面的章节中,将鼓励读者在自己的MySQL环境里试验各种实例。这样做不会破坏任何东西,反而会使读者从亲身的经历中收获大量的知识。
本书以教程和参考向导两种形式进行组织,所以可以用读者喜欢的任意次序阅读它。这里有一些建议:
● 如果你是MySQL初学者,按照次序阅读各章会比较容易,可以按结构化的方式学习基本知识。这是推荐的方法,MySQL的新用户应该采用它。
● 如果你已经使用过MySQL,可能更喜欢把本书作为一本桌面参考书,可随意把它翻到需要的位置来阅读特别的主题。
● 如果你是一位专家(比如数据库管理员或Web开发者),本书包含单独的关于MySQL管理和开发的部分,专门设计用来解决最经常遇到的问题,并且提供了所有与读者工作性质相关的问题和主题的信息。
组织
本书分为四个部分,下面列出了每部分包含的内容。
第一部分提供MySQL的简介,并且指导在UNIX和Windows上安装MySQL。
第1章探讨了MySQL的历史和发展,它的特性,并且解释了为什么它能提供如此引人注目的价值。
第2章粗略讲解了MySQL的优点,解释了各种MySQL子系统以及它们是如何相互配合的。
第3章研究如何在UNIX和Windows上获得、安装、配置和测试MySQL服务器版本。还从有助于读者选择恰当的服务器版本的角度出发,解释了可以使用的不同MySQL服务器版本之间的差异。
第二部分讲述MySQL服务器的实际应用,解释了怎样使用SQL命令集来创建数据库和表、添加和删除记录、执行查询和使用诸如事务和子查询之类的高级MySQL 4.x特性。
第4章讲述SQL的历史和发展,此外还包括一个简单的教程,使新用户熟悉用于创建和将信息输入数据库的基本SQL命令。
第5章研究MySQL所支持的各种数据类型,并且探讨了如何用它们来增强表的一致性和完整性。
第6章介绍MySQL的算术运算、逻辑运算、比较运算和位运算,并且演示了它们怎样用于执行计算、比较和转换。
第7章讲述MySQL的大量内置函数,向读者展示了如何用最少的时间和精力来允许MySQL开发者执行从数据处理到口令加密等一系列操作。
第8章深入讨论MySQL用来存储数据的数据库和表的结构,并且解释了用来创建、修改和删除数据库、表和索引的SQL命令。本章的核心是讨论MySQL强大的CREATE TABLE命令,它提供了表创建过程的适度控制,探讨了对MySQL相对比较新的外键和全文索引。
第9章继续前一章,解释了怎样把记录插入到现有的MySQL数据库中。本章的第一部分论述了INSERT,UPDATE和DELETE命令,举例说明了怎样使用它们来处理数据库记录,并且阐明了MySQL特有的关于标准命令句法的某些问题;第二部分深入研究了SELECT语句,展示了如何使用它来创建数据库中记录的过滤子集;排序、分组和计算记录;使用会话变量;用多种不同的格式输入和输出数据等功能。
第10章讲述多表查询,展示了表之间的关系如何以不同的方式连接记录,以生成更有用的报表。本章论述了各种类型的连接,并且演示了它们在许多不同情况下的用法。
第11章讲述如何在查询里嵌套查询,以求更高级的查询运算,这是MySQL 4.1新引入的特性。
第12章研究MySQL 4.x的另一个非常强大的新特性:把一系列SQL语句分组成单个单元并且原子性地执行它们,或在出错的事件中撤销全部改动的能力。
第三部分论述在管理和维护一个MySQL RDBMS时要做的工作,包括像数据库备份和修复、安全性、访问控制、活动日志、服务器优化和故障排除这样的主题。
第13章分析了MySQL数据库管理员的作用,解释了像启动和关闭服务器、修改默认的服务器配置和检查MySQL日志文件这样的常规任务。
第14章讲述MySQL的安全和权限系统,探讨了用户账号和口令的管理(包括忘记了MySQL超级用户口令的解决办法)。
第15章提供了关于如何备份和恢复一个MySQL数据库,以及如何使用MySQL提供的功能从一个被破坏的数据库中恢复数据的信息和指导。
第16章提供了让MySQL服务器性能尽量达到最大的技巧和窍门,包括关于优化查询达到快速执行,修改高速缓冲存储器和缓冲器设置以达到迅速响应,以及使用特殊的运行时间参数以求更有效的资源利用等方面的信息。
第17章论述MySQL的另一个更有趣和强大的特性:自动复制跨越不同主机的数据库的能力。
第四部分主要针对开发者,它论述了MySQL API,一套建立自定义数据驱动的MySQL应用程序的功能全面而强大的工具。本部分包括实例和C,Perl,PHP API源代码。
第18章通过一系列API揭示了MySQL内部结构的情况和基本原理,对各种API的性能提供了简要的描述。其目的是帮助开发者选择适合他们的特殊要求的API。本章还对不同API之间相互比较的优点进行了论述。
第19章讨论如何使用MySQL发布版本包含的C库API编写MySQL客户应用程序。现实的例子包括一个交互式命令行SQL客户机和一个支持数据输入和简单报表生成功能的交互式开支追踪程序。
第20章讨论Perl DBI,特别介绍了MySQL驱动程序和可以通过Perl脚本连接MySQL数据库的DBI方法。在这里的现实应用软件是一个基于CGI的线索评论系统,通过一个标准网络浏览器可以访问它并且适合在内容丰富的网站上使用。
第21章主要围绕PHP进行论述,它是MySQL所包含的支持数据库Web应用程序的一种流行的脚本语言。此外还详细论述了相关的PHP函数。本章通过适用于任何网络浏览器的一个数据库驱动的书签应用程序,演示了MySQL与PHP组合的现实可用性。
本书使用约定
本书使用几个约定来突出特别的建议:
提示:使MySQL更好地为我们服务的简便方法。
注释:了解MySQL和其他程序工作的方式。
警告:需特别注意的地方,从而可使读者少走弯路。
当提到相关的材料时,通常会给出包含希望阅读到的信息的章节编号。
在本书的代码清单中,用粗体字突出的句子是在提示符下输入的命令。例如在下面的清单中:
mysql> SELECT * FROM articles;
+-----+-----------------------------------+--------+
| aid | aname | fk_cid |
+-----+-----------------------------------+--------+
| 1 | Sample article on winter fashions | 2 |
+-----+-----------------------------------+--------+
1 row in set (0.00 sec)
粗体字行是用户要在MySQL命令提示符下输入的查询。可以使用这个例子作为一个向导来试验本书中的各种实例。
补 充 资 料
这是补充资料的版式。补充资料被设置成有点远离正常文本,它包括与当前主题相关的信息,但是不一定必须符合信息的流向。
相关网站
学习MySQL的最好的方法是理论和实践相结合。要达到这个目标,可以在MySQL相关网站http://www.mysql-tcr.com/上找到本书用于创建很多实例数据库的SQL代码,并且演示了本书第四部分中介绍的各种应用程序和脚本的源代码。当你访问这个网站时,可以顺便访问一下MySQL讨论论坛,联络其他MySQL用户和社区,以共享我们在MySQL使用和管理上的经验。