电脑技术学习

Mysql入门系列:MySQL程序设计介绍

dn001

  更一般的情况是,要想检索一组记录,然后使用每一条记录作为一系列复杂的进一步操作的基础是困难的。例如,检索一个消费者列表然后查询每个消费者的详细信用历史,对每个客户来说可能要包括若干个查询。在某些情况下,可能想开发票,在发票头写上需要联系的客户信息,然后按次序列出每项条目。mysql不适合这些类型的任务,因为可能需要依赖于前几个查询结果的若干查询,并且这些任务超出了mysql的布局设计的能力。一般来说,除了mysql外,还需要工具来执行包括主-细目关系和具有复杂输出格式需求的任务。程序提供将查询连接在一起的“胶”,并可用一个查询的输出作为另一个查询的输入。

  可以将MySQL集成到任何应用程序中。许多程序都利用数据库的能力提供信息。通过发布一个快速查询,应用程序可以校验消费者号或检查一项条目是否在产品清单中。假设一个客户要寻找某些作者的所有书,则Web 应用程序可以在数据库中查找它们,

  然后将结果显示在该客户的浏览器上。

  通过使用调用带有包含SQL 语句的输入文件的mysql的外壳脚本( shell script),可以实现一种初步的“集成”,然后,再使用其他UNIX实用程序加工这些输出。但是这可能变得很难看,特别是当任务变得更复杂时。当应用程序不断增长成为杂乱的修补工作时,它也可能产生一种“在工作,但觉得有错误”的感觉。此外,运行其他命令的外壳脚本的创建过程的开销可能超过您的预想。但它可能更有效率地与MySQL服务器直接交互,当在应用程序执行的每个阶段需要它的时候,都可以精确地提取想要的信息。针对我们在第1章“MySQL和SQL 介绍”中安装的样例数据库samp_db,我们已经列举了若干需要自己编写与MySQL服务器交互的程序的目标。这些目标中的一些显示在下面的列表中:

  为打印而格式化Historical League 目录。

  考虑外观和联机目录的寻找。

  通过电子邮件向成员发送补充通知。

  使用Web 浏览器很容易地将分数输入到学分册中。

  在一些细节方面,我们将考虑的一个方面是将MySQL的能力与Web 环境结合起来。MySQL不直接提供对Web 应用程序的支持,但通过组合带有适当的工具的MySQL,通过We b可以很容易地访问数据库。使用Web 服务器可以指定查询,向客户的浏览器报告结果。将MySQL和Web 结合可能有两个想法:

  主要的兴趣在于数据库,只是想使用Web 作为工具来获取对数据更容易的访问。在这样的想法下,数据库的位置是清楚且明显的,因为它是兴趣的焦点。例如,可以编写Web 页来允许查看数据库所包含的表、表的结构,及表的内容。您打算使用Web 服务器来提高对MySQL的访问能力。这可能也是MySQL管理者的观点。

  主要的兴趣可能是Web 站点,为了使站点的内容对访问者更有价值,您可能想使用MySQL作为一个工具。例如,如果为站点的访问者运行信息板或讨论清单,则可以使用MySQL保留信息的轨迹。在这种情况下,数据库的角色更微妙,访问者甚至可以不关心您必须提供给他在服务器中执行的部分。您打算使用MySQL提高Web 服务器的能力。这可能也是Web 站点开发者的一个观点。

  这些想法并不矛盾。例如,在Historical League 情况下,我们想通过允许联机输入来作为成员获取访问成员目录内容的一种方法而使用We b。提供对数据库的访问是Web 的一个用法。同时,League 的Web 站点在某些方面有些不完全,所以向站点增加目录内容,以便为成员提高站点的价值。增强站点所提供的服务是数据库的一种用法。

  无论您如何看待MySQL与Web 的结合,实现方法都是类似的,即将前台的Web 站点与后台的MySQL连接,使用Web 服务器作为媒介。Web 服务器将查询从用户发送到MySQL服务器,检索查询结果,然后将它们传送给客户,在浏览器上显示。

  当然,不一定要联机处理数据,但这样做往往有好处,特别是与经过标准的MySQL客户机程序访问数据做比较时:

  通过Web 访问数据,人们可以使用他们喜欢的浏览器,在他们喜欢的平台上运行。他们不限制MySQL客户机程序所运行的系统。Web 浏览器更是这样,无论MySQL客户机分布如何广泛。

  Web 界面的使用比独立命令行的MySQL客户机程序的使用更简单。

  Web 界面可以根据特殊应用程序的要求来定制。而MySQL客户机程序是用固定接口来完成基本功能的工具。