MySQL数据库技术(26)[MySQL防范]
本文“MySQL数据库技术(26)[MySQL防范]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
? ? 在本书的这部份中,我们将谈论编写自己的拜候MySQL 数据库的程序所需求知道的内容.MySQL 有一组实用程序.比方, mysqldump 导出表的上下文和构造定义, mysql import将数据文件加载到表中, mysqladmin 实现管理w操作, mysql 可以利用户与服务器交互来履行肆意的查询.每个尺度的MySQL 实用程序都偏向于玲珑,重点放在程序可完成特定的、有限的功效.即便mysql 也是如此,从感受上说, mysql 比其他实用程序更机动,因此可以用它来履行任何数目的各种查询,即它就是为答应向服务器直接公布SQL 查询,并可查看查询后果这一单一目的而计划的.
? ? MySQL 客户机这种有限的特点并非缺陷,而是特地计划的.程序是具有通用目的的实用程序;它们并不试图意料您所想做的全部大概的需求.MySQL 的开辟者们不赞成编写大型的、臃肿的程序来试图做大概想去做的每件事情(并且这样做的后果将使程序中包含大量的
您根本不关心的事情的代码).但是,有时有些利用确切有通例客户机的本领所无法处理的需求.为了处理这些情形,MySQL 供应一个客户机编程库.这答应您编写自己的程序,满意您的利用程序大概具有的任何特定需求.通过答应您对MySQL 服务器的拜候,客户机的开放
程度只受您自己想象力的限制了.
? ? 编写自己的程序可以获得若何特别的本领呢?让我们对比一下mysql 客户机和其没有附加代码的接口对MySQL 服务器的拜候:
? ? ■ 可以定制输入处理.用mysql可以输入原始的SQL 语句.用自己的程序,可认为用户供应利用起来更直观、更简单的输入办法.用程序可以利用户没必要知道S Q L—乃至没必要知道在完成的任务中数据库承当的角色.
? ? 输入信息的采集大概是像号令行气势的提醒和值读取这样基本的方法,大概大概是利用屏幕管理程序包(如curses 或S - L a n g)、利用Tcl/Tk 的X 窗口或Web 浏览器格局实现的基于屏幕输入那样复杂的方法.
? ? 对大大都人来说,通过填写一定的格局来指定搜索参数的情势比通过公布SELECT语句更简单.比方,一位房地产经纪人,要探求一定价钱范围、气势或位置的房屋,只要将查寻参数输入到表格中,便可以最小的代价得到符合条件的内容.输入新记录或更新已有记录也近似地考虑这种利用.在数据输入部门的键盘操作员应当不需求知道像INSERT、REPLACE 或UPDATE 这样的SQL 语法.
? ? 在终究用户和MySQL 服务器之间提出输入采集层的另一个缘由是可以校验用户供应的输入.比方,可以查抄数据,确认它们是符合MySQL 要求的格局,或可以要求填写特定的区域.
? ? ■ 可以定制输出.mysql 的输出基本上是无格局的;可以挑选以制表符为脱离符或以表格情势输出.假如想要使输出后果看起来对比好,则必须自己对它举行格局化.这些需求大概像打印"Missing"而不是NULL 这样简单,也大概更复杂.考虑下面的报告:
? ? 这个报告包含几个特定的元素:
? ? ■ 定制标题.
? ? ■ 在State 列中反复值的克制以便只在更改时才将这些值打印出来.
? ? ■ 小计和总计的计算.
? ? ■ 数字格局,如9 4 3 8 4 . 2 4,打印为美圆数目为$ 9 4 , 3 8 4 . 2 4.关于一些任务,乃至大概不需求任何输出.您大概正在对计算向后插入到另一个数据库表中的后果举行简单地检索信息.除了用户运行这个查询以外,乃至大概还想将这个后果输出到其他地方.比方,假如正在提取姓名和电子邮件地址以自动地填入为批量电子邮件生成信件格局的历程中,则程序产生输出.但是该输出由邮件承受者的信息构成,而没有运路程序人员的信息.
? ? ■ 可以在S Q L自身施加的约束条件的环境下工作.SQL 不是一种带有条件挑选、循环和子例程的流程掌握构造的历程语言.SQL 脚本包含一组从开始到完毕一次一个的可履行语句,具有最低限度的错误查抄.
? ? 假如在批处理情势中利用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 浏览器很简单地将分数输入到学分册中.
? ? 在一些细节方面,我们将考虑的一个方面是将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 站点开辟者的一个概念.
? ? 这些设法并不冲突.比方,在Historical League 情形下,我们想通过答应联机输入来作为成员获得拜候成员目录内容的一种办法而利用We b.供应对数据库的拜候是Web 的一个用法.同时,League 的Web 站点在某些方面有些不完好,所以向站点增添目录内容,以便为成员提高站点的代价.加强站点所供应的服务是数据库的一种用法.
? ? 无论您若何对待MySQL 与Web 的结合,实现办法都是近似的,行将前台的Web 站点与后台的MySQL 衔接,利用Web 服务器作为媒介.Web 服务器将查询从用户发送到M y S Q L服务器,检索查询后果,然后将它们传送给客户,在浏览器上显示.
? ? 当然,不一定要联机处理数据,但这样做常常有好处,分外是与经过尺度的MySQL 客户机程序拜候数据做对比时:
? ? ■ 通过Web 拜候数据,人们可以利用他们喜好的浏览器,在他们喜好的平台上运行.他们不限制MySQL 客户机程序所运行的系统.Web 浏览器更是这样,无论MySQL 客户机分布若何遍及.
? ? ■ Web 界面的利用比独立号令行的MySQL 客户机程序的利用更简单.
? ? ■ Web 界面可以按照特别利用程序的要求来定制.而M y S Q L客户机程序是用固定接口来完成基本功效的工具.
? ? ■ 动态Web 页面扩大了MySQL 的本领,它可以做到用MySQL 客户机很难做到或根本不大概做到的事情.比方,仅用MySQL 客户机程序不大概真正地使一体化购置车辆的利用程序组合成整体.
? ? 任何编程语言都可用来编写基于Web 的利用程序,但是,有些语言比其他语言更合适一些.请参阅5 . 2节"挑选A P I",我们将看到这点.
以上是“MySQL数据库技术(26)[MySQL防范]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |