APP下载

SQL数据库编程技术在Foxpro中的应用

2009-03-14王丽英

新媒体研究 2009年4期

王丽英 鲁 娟

[摘要]SQL是高级的非过程化编程语言,可以写出非常复杂的语句。SQL数据库编程技术在Foxpro中的应用是FoxPro推出的另一项具有革命性意义的关键技术。介绍SQL的定义以及SQL数据库编程技术在Foxpro中的应用。

[关键词]SQL语句 非过程化语言 存储过程

中图分类号:TP3文献标识码:A文章编号:1671-7597(2009)0220071-01

当今,数据库联网实现数据共享已经成为信息系统建设中一个迅速发展的潮流。利用SQL Server、Oracal、Sybase等客户机/服务器(Client/Se

rver)体系结构的数据库系统进行信息系统的开发、更新改造已成为当前一大趋势。而Foxpro是我国近年应用较为广泛的数据库开发软件,许多单位、部门多年来积累了大量的宝贵的数据资料,这些部门面临进行计算机信息系统改造、更新问题,下面主要介绍如何在DBF数据表中运用SQL Server语言。

一、SQL的概念

SQL全称是“结构化查询语言(Structured Query Language)”是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。最早的是IBM的圣约瑟研究实验室为其关系数据库管理系统SYSTEM R开发的一种查询语言,它的前身是SQUARE语言。SQL语言结构简洁,功能强大,简单易学,所以自从IBM公司1981年推出以来,SQL语言,得到了广泛的应用。如今无论是像Oracle,Sybase,Informix,SQL server这些大型的数据库管理系统,还是像Visual Foxporo,PowerBuilder这些微机上常用的数据库开发系统,都支持SQL语言作为查询语言。

SQL是高级的非过程化编程语言,允许用户在高层数据结构上工作,具有完全不同底层结构的不同数据库系统可以使用相同的SQL语言作为数据输入与管理的接口。它以记录集合作为操作对象,所有SQL语句接受集合作为输入,返回集合作为输出,这种集合特性允许一条SQL语句的输出作为另一条SQL语句的输入,所以SQL语句可以嵌套,这使他具有极大的灵活性和强大的功能,可以写出非常复杂的语句。

SQL语言包括两种主要程式设计语言类别的陈述式:资料定义语言(DDL)与资料操作语言(DML)。DDL用于定义和管理物件,例如资料库、资料表以及检视表。DDL陈述式通常包括每个物件的CREATE、ALTER以及DROP命令。举例来说,CREATE TABLE、ALTER TABLE以及DROP TABLE这些陈述式便可以用来建立新资料表、修改其属性(如新增或删除资料行)、删除资料表等。DML利用INSERT、SELECT、UPDATE及DELETE 等陈述式来操作资料库物件所包含的资料。

二、SQL的优点

SQL广泛地被采用正说明了它的优点。它使全部用户,包括应用程序员、DBA管理员和终端用户受益匪浅。

(一)非过程化语言

SQL是一个非过程化的语言,因为它一次处理一个记录,对数据提供自动导航。SQL允许用户在高层的数据结构上工作,而不对单个记录进行操作,可操作记录集。所有SQL语句接受集合作为输入,返回集合作为输出。SQL的集合特性允许一条SQL语句的结果作为另一条SQL语句的输入。SQL不要求用户指定对数据的存放方法。这种特性使用户更易集中精力于要得到的结果。所有SQL语句使用查询优化器,它是RDBMS的一部分,由它决定对指定数据存取的最快速度的手段。查询优化器知道存在什么索引,哪儿使用合适,而用户从不需要知道表是否有索引,表有什么类型的索引。

(二)统一的语言

SQL可用于所有用户的DB活动模型,包括系统管理员、数据库管理员、应用程序员、决策支持系统人员及许多其它类型的终端用户。基本的SQL命令只需很少时间就能学会,最高级的命令在几天内便可掌握。SQL为许多任务提供了命令,包括:

1.查询数据;

2.在表中插入、修改和删除记录;

3.建立、修改和删除数据对象;

4.控制对数据和数据对象的存取;

5.保证数据库一致性和完整性。

三、执行存储过程

JDBC调用存储过程,并使用存储过程的返回值。这样可以将处理工作分为服务端和客户端两部分,并大大加快系统的设计和开发的时间。比如可以重复使用服务器上的组件。使用存储过程之后大量存储计算工作可以交给数据库服务器来处理,这将降低Web服务器的负载,从而提高整个系统的性能。

四、使用事务

1.事务中的操作是一个整体,要么都执行成功要么都不成功:事务开始后,如果所有的改变都正确,则使用commit方法将这些动作全部存入数据库,否则就使用rollback取消所有的改变动作,而这时数据库中的数据和执行事务前的是相同的。

2.使用事务时应当先用con.setAutoCommit(false),最后使用commit或者rollback。

3.rollback一般在catch段执行。

五、数据库连接池

如果有一个数据库连接请求并且连接中没有连接,则生成一个新的连接。这个连接使用完之后并不关闭它,而是将它放入连接池。在这个过程中,还要判断连接池中的连接是否超期。如果超期则将它关闭。

六、小结

综上所述,SQL语言是强大的数据语言。SQL Fox的开发人员第一次用单一语句取代了整个程序过程,并且这种支持是内含于Fox数据引擎之中的,是一次具有革命意义的技术进步。

参考文献:

[1]胡维华主编,《Visual FoxPro程序设计教程》,浙江科学技术出版社,杭州,2000.

[2]陈华生主编,《Visual FoxPro教程》,苏州大学出版社.

[3]http://www.zk168.com.cn/INFO/Study/FreeThesis/In.29K 2006-6-29.

[4]http://www.dongkai.me/blog-it-related-articles/6-history-of-sql.html,SQL发展历史.