select语句的完整句法如下:select 目标表的列名或列表达式序列from 基本表和(或)视图序列[where 行条件表达式][group by 列名序列][having 组条件表达式][order by列名 [asc│deac]…]我在select语句中还使用了大量的保留字和通配符以进行各种各样的条件查询。在系统中有大量的查询按钮,其使用了大量的查询语句,而且这些查询语句大部分使用的是模糊查询,所以大量的使用了模式匹配符like(判断值是否与指定的字符通配格式相符)。在包含like的查询语句中可以使用两个通配符:%(百分号):与零个或多个字符组成的字符串匹配;_(下划线):与单个字符匹配。系统中的条件判断往往包含多个条件,这时就需要使用逻辑运算符not、and、or(用于多条件的逻辑连接),谓词all以及保留字distinct等等。做为select语句还有很多的使用方法,这里就不再叙述。2.3.3 sql数据更新使用数据库的目的是为了有效地管理数据,而数据的插入、删除和修改则是必不可少的一个功能。在本系统中就大量地使用了数据插入、删除和修改这三种操作,现做一个简单地介绍。●数据插入往数据库的基本表中插入数据使用的是insert语句,其方式有两种:一种是元组值的插入,另一种是查询结果的插入。在本系统中使用的是前一种方式,其句法如下:insert into 基本表名(列表名)values(元组值)●数据删除往数据库的基本表中删除数据使用的是delete语句,其句法如下:delete from 基本表名 [where 条件表达式]在些作一点说明,删除语句实际上是“select * from 基本表名 [where 条件表达式]”和delete操作的结合,每找到一个元组,就把它删除。此外,delete语句只能从一个基本
表中删除元组,where子句中条件可以嵌套,也可以是来自几个基本表的复合条件。●数据修改当需要修改基本表中元组的某些列值时,可以用update语句实现,其句法如下:update基本表名set列名=值表达式[,列名=值表达式…][where条件表达式]在delphi中使用sql语句是很方便的,一般来说,都是通过tquery组件来使用sql语言的。有一点要进行说明,虽然通过tquery组件来使用sql语言很方便,但考虑到自己对不同组件的理解程度、个人习惯以及其它各个方面,在本系统中我采用的是ado组件来对数据库进行操作。最简单的方法比如在tadoquery组件的sql属性中就可以键入sql语句,至于详细的使用方法在后面进行介绍。 第三章 数据库开发工具§3.1 delphi 6.0 简介delphi类可以粗略地分成两部分:一部分是组件类,这些组件类通常以某种方式出现在组件面板上,当用户从组件面板上点取一个类的图标后,在程序中就自动生成了该类的对象(非可视组件除外);另一部分是功能类,这此功能类的对象通常出现在程序代码中,起着不可代替的作用,但是这些功能类在组件面板上是找不到的。在delphi中,每一个类的祖先都是tobject类,整个类的层次结构就像一棵倒挂的树,在最顶层的树根即为tobject类。这样,按照面向对象编程的基本思想,就使得用户可用tobject类这个类型代替任何其它类的数据类型。实际上在delphi的类库中,tobject类派生出了为数相当众多的子类,它们形成了一个庞大的体系,通常情况下,如果不自行开发组件,就不必了解整个类的体系结构,只用到类层次树的叶结点就足够了。凡是做过程序开发的人都知道从来没有单纯的数据应用程序,也就是说,数据库应用程序必须和用户界面(可以是图形界面,也可以是命令接口)元素相结合,只讲界面或只讲数据库本身都构不成数据库应用程序,因而用delphi 6.0开发数据库应用程序就隐含着界面开发。delphi6中的vcl组件可用图3-1来说明。
组件在delphi程序的开发中是最显眼的角色。大家知道,在编写程序时一般都开始于在组件面板上选择组件并定义组件间的相互作用。但也有一些组件不在组件面板上,例如tform和tapplication(典型的非可视组件)。组件是tcomponents派生出来的子类,可以流的形式存放在dfm文件中,具有事件和publish属性。窗口组件类是窗口化的可视化组件类,在delphi的类库中占有最大