My SQL数据库实用技术(26)
时间:2007-12-23 来源:不详 作者:迈克DB
假如在批处理模式中使用mysql 执行SQL 查询的一个文件,则mysql 在出现第一个错误后退出,或者,假如指定--force 选项,则不管出现多少错误,都不加选择地执行所有查询。程序可以围绕语句提供流程控制,以便可以有选择地适应查询的成功或失败。可以根据另一个查询的成功或失败来执行一个查询,或根据前一个查询的结果来决定下一步要做的事情。SQL 具有非常有限的语句间的连续性,这点也被带到mysql 中。使用一个查询的结果,并将它们应用于另一个查询中,或将多个查询结果联系在一起是困难的。L A S T _ I N S E RT _ID() 可用于获取由前一个语句最新生成的A U TO_INCREMENT 值,仅仅是关于它的。
更一般的情况是,要想检索一组记录,然后使用每一条记录作为一系列复杂的进一步操作的基础是困难的。例如,检索一个消费者列表然后查询每个消费者的具体信用历史,对每个客户来说可能要包括若干个查询。在某些情况下,可能想开发票,在发票头写上需要联系的客户信息,然后按次序列出每项条目。mysql 不适合这些类型的任务,因为可能需要依靠于前几个查询结果的若干查询,并且这些任务超出了mysql 的布局设计的能力。一般来说,除了mysql 外,还需要工具来执行包括主-细目关系和具有复杂输出格式需求的任务。程序提供将查询连接在一起的“胶”,并可用一个查询的输出作为另一个查询的输入。
织梦内容管理系统
■ 可以将MySQL 集成到任何应用程序中。许多程序都利用数据库的能力提供信息。通过发布一个快速查询,应用程序可以校验消费者号或检查一项条目是否在产品清单中。假设一个客户要寻找某些作者的所有书,则Web 应用程序可以在数据库中查找它们,
然后将结果显示在该客户的浏览器上。
通过使用调用带有包含SQL 语句的输入文件的mysql 的外壳脚本( shell script),可以实现一种初步的“集成”,然后,再使用其他UNIX实用程序加工这些输出。但是这可能变得很难看,非凡是当任务变得更复杂时。当应用程序不断增长成为杂乱的修补工作时,它也可能产生一种“在工作,但觉得有错误”的感觉。此外,运行其他命令的外壳脚本的创建过程的开销可能超过您的预想。但它可能更有效率地与MySQL 服务器直接交互,当在应用程序执行的每个阶段需要它的时候,都可以精确地提取想要的信息。针对我们在第1章“MySQL 和SQL 介绍”中安装的样例数据库s a m p _ d b,我们已经列举了若干需要自己编写与MySQL 服务器交互的程序的目标。这些目标中的一些显示在下面的列表中:
■ 为打印而格式化Historical League 目录。
■ 考虑外观和联机目录的寻找。
■ 通过电子邮件向成员发送补充通知。
■ 使用Web 浏览器很轻易地将分数输入到学分册中。
内容来自dedecms
在一些细节方面,我们将考虑的一个方面是将MySQL 的能力与Web 环境结合起来。MySQL 不直接提供对Web 应用程序的支持,但通过组合带有适当的工具的M y S Q L,通过We b可以很轻易地访问数据库。使用Web 服务器可以指定查询,向客户的浏览器报告结果。将MySQL 和Web 结合可能有两个想法:
■ 主要的爱好在于数据库,只是想使用Web 作为工具来获取对数据更轻易的访问。在这样的想法下,数据库的位置是清楚且明显的,因为它是爱好的焦点。例如,可以编写Web 页来答应查看数据库所包含的表、表的结构,及表的内容。您打算使用Web 服务器来提高对MySQL 的访问能力。这可能也是MySQL 治理者的观点。
■ 主要的爱好可能是Web 站点,为了使站点的内容对访问者更有价值,您可能想使用MySQL 作为一个工具。例如,假如为站点的访问者运行信息板或讨论清单,则可以使用MySQL 保留信息的轨迹。在这种情况下,数据库的角色更微妙,访问者甚至可以不关心您必须提供给他在服务器中执行的部分。您打算使用MySQL 提高Web 服务器的能力。这可能也是Web 站点开发者的一个观点。
上一篇:My SQL数据库实用技术(25) 下一篇:My SQL数据库实用技术(27)
文章评论
共有位Admini5网友发表了评论 查看完整内容