Delphi程序设计第7章.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《Delphi程序设计第7章.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Delphi 程序设计
- 资源描述:
-
1、第第7章数据库程序设计章数据库程序设计数据库程序设计是程序设计的重要组成部分。自20世纪60年代以来,数据库技术得到了迅猛发展,从而拉开了信息时代的序幕。到了21世纪,数据处理是计算机四大应用(科学计算、过程控制、数据处理和辅助设计)的一个主要方面。本章将介绍数据库的相关概念,以及如何在Delphi中进行数据库应用程序的开发。7.1 数据库系统简介数据库系统简介数据库系统是一个庞大的综合性系统,通常意义的数据库系统主要包括数据库、数据库管理系统、数据库用户几个部分。数据库(Database)是数据库系统的基础,用于存放所有的数据信息;数据库管理系统(Database Management Sy
2、stem,DBMS)是数据库系统的核心,所有数据的操作与管理都必须在DBMS的控制下进行;数据库用户包括数据库管理者和使用者,不同类型的用户拥有不同的权力,并可以通过多种方式,在DBMS帮助下管理和使用数据库中的数据。7.1.1 数据库的基本概念数据库的基本概念1.数据、信息与数据库通常情况下,数据时指可以描述事物的符号记录,其形式是多样的,包括数字、文字、图形、音频与视频等。信息是指经过加工处理,具有一定含义,对用户决策有一定使用价值的数据。数据库是存放在计算机中有组织的可以表现为多种形式的可共享的数据集合。2.关系数据库当前几乎所有的主流数据库均采用关系模式来描述和保存数据,这样的数据库叫
3、关系数据库。关系数据库的特征是用二维表的结构来表示实体与实体集间的关系。1)实体实体表示客观存在的可以相互区别的事务,实体可以是具体的对象,如一个学生、一门课程,也可以是抽象的事务,如学生选课程。2)实体集实体集是具有相同特征的同一类实体的集合,如学校全体学生的集合,公司全体员工的集合等。3.关系表关系数据库中的数据关系用关系表表示。关系表是一张二维的表格,是按行和列排列的相关信息的逻辑组。下表就是一张描述学生信息的关系表。学号姓名性别年龄院系班级200804121张玲女20计算机系软件0802200814502王凡男19英语系物理0701:学生信息表1)字段关系表中的一列称为一个字段,用来表
4、示实体的属性,如上表中的字段用于表述学生的学号、姓名、性别、年龄等。2)记录表中的一行称为一个记录,表示一个具体的实体信息。如上表中的第一行数据用于描述“张玲”的信息;而第二行用于描述“王凡”的信息。3)索引一个关系表可以按照某种特定顺序进行排列或保存,这种特定顺序称为关系表的索引。使用索引可以在数据库中快速检索出指定的记录,从而提高数据库的访问速度。例如,上表中,可以将学号设置为索引字段。4)关键字关键字也称为主键,是关系表中能唯一描述数据元素的字段。例如,上表中“学号”字段可作为关键字,能唯一标识一条学生信息。学生的姓名、年龄、性别都可以相同,但学号是唯一的。5)关系表的操作关系表的操作包
5、括查询和更新两类。查询操作包括选择、投影、链接、除、交、并、差和笛卡尔积。更新操作包括插入、删除和修改。目前,常用的数据库很多,如Access、MS SQL Service、DB2、Sybase、Oracle等数据库系统。本章将以在Windows系统中使用较为广泛的SQL Service 2000数据库系统为例,介绍如何利用Delphi开发系统进行数据库程序设计。7.1.2 创建数据库创建数据库创建数据库是数据库程序设计的第一步,通常情况下,创建数据库包括建立数据库和建立数据表两个过程。在Windows系统中,通常使用可视化的数据库管理工具,如SQL Server 2000来完成数据库的建立工
6、作。1.建立数据库建立数据库的步骤如下:(1)打开“开始”菜单,执行“所有程序”Microsoft SQL Server“服务管理器”命令,然后单击启动按钮启动SQL Server服务器。(2)打开“开始”菜单,执行“程序”Microsoft SQL Server“企业管理器”命令,打开企业管理器窗口,如下图所示。企业管理器(3)展开企业管理器左边的控制台根目录,右击“数据库”目录,在弹出的快捷菜单中选择“新建数据库”命令,弹出“数据库属性”对话框。(4)在“名称”文本框中输入要建立数据库的名称,如右图所示。单击“确定”按钮,即可创建一个数据库。“数据库属性”对话框2.建立数据表建立数据库后,
7、还需要在数据库中建立数据表。操作步骤如下:(1)在企业管理器的控制台根目录中展开前面建立的STUINF数据库,选中“表”选项,如下图所示。(2)右击,在弹出的快捷菜单中选择“新建表”命令,打开表设计窗口,如下图所示。表设计窗口(3)在STUINF数据库中建立一张名为STUINF的数据表(数据结构如下表所示)。列 名数据类型说 明STUNOchar学号,字符串STUNAMEvarchar姓名,变长字符串STUSEXchar性别,字符串,长度为2STUAGEint年龄,整型STUDEPTvarchar所在院系,变长字符串STUCLASSvarchar所在班级,变长字符串STUINF表结构在表设计窗
8、口中输入上表中的信息,如右图所示,在“允许空”列中设置该列是否允许为空(当允许空时,不为该列添加数据;否则,必须为该列添加相应数据。通常情况下,所有数据列都不要允许为空)。右击要设置为主键的字段,如STUNO列,选择快捷菜单中的“设置主键”命令。所有列设置好后,单击工具栏中的“保存”按钮,即可完成数据表的创建。建立数据表(4)建立好数据表后,在数据表中添加数据,如下图所示。添加数据7.1.3 结构化查询语言结构化查询语言建立数据库的目的是为了能够安全高效地进行数据操作。在数据库中,通过结构化查询语言(Structured Query Language,SQL)完成对数据的操作。SQL是关系数据
9、库的标注语言,它不仅具有强大的查询功能,还具有数据控制和数据定义等功能,它集合了数据定义语言DDL、数据操纵语言DML和数据控制语言DCL的所有功能,充分体现了关系数据语言的有点,目前所有数据库都支持SQL语言,下面介绍一些简单的SQL语句。1.添加数据INSERT语句用于将一条记录插入指定的数据表中。1)完整插入如果一张数据表中有n个字段,在插入一条记录时对每个字段赋值,然后将该记录插入表中,这样的插入模式称为完整插入,其语法格式如下:INSERT NTO (字段1,字段2,字段n)VALUES(取值1,取值2,取值n)例如,要向STUINF表中完整插入一条记录是,可以使用下面的语句:INS
10、ERT INTO STUINFVALUES(200814567,王鹏,男,19,计算机学院,软件0812班)2)非完整插入如果一张数据表中有n字段,在插入数据时只对其中有限的的m个字段赋值,而其余n-m个字段没有赋值,这样的插入模式称为非完整插入,其语法格式如下:INSERT INTO(字段,字段2,字段m)VALUES(取值1,取值2,取值m)例如,要以非完整插入模式在STUINF表中添加一条数据,可以使用下面的语句:INSERT INTO STUINF(STUNO,STUNAME)VALUES(200812421,李婷)在非完整插入记录时,没有插入数据的列均自动添加为空值。3)注意事项在插
11、入数据过程中,要注意以下几点:(1)不能插入重复记录,即同一条记录不能插入两次。(2)在插入数据时,插入字段的属性与属性值必须一一对应。2.修改数据UPDATE语句用于修改数据表中的数据。1)有条件修改在修改表中数据时,可以预先设定修改的条件,只有满足条件的数据才能进行修改。其语法格式如下:UPDATE SET =,=,WHERE 例如,可以通过下面的语句将STUINF表中“王鹏”的年龄修改为20。UPDATE STUINFSET STUAGE=20WHERE STUNAME=“王鹏”2)无条件修改在没有设定任何条件的情况下修改表中数据,称为无条件修改。此时,表中的所有记录的值都会更新,其语法
12、格式如下:UPDATE SET =,=,例如,将STUINF表中所有的人的性别修改为“女”,班级修改为“硬件0810班”,可以使用下面的语句:UPDATE STUINFSET STUSEX=女,STUCLASS=硬件0810班3.删除数据使用SQL语言中的DELETE语句可以删除一条记录。与UPDATE语句相同,DELETE语句也分为有条件删除与无条件删除两种。1)有条件删除语句使用有条件删除语句可以删除数据库中符合条件的记录,其格式的格式如下:DELETE FROM WHERE 例如,删除STUINF表中年龄小于20的学生,可以用下面语句实现该功能。DELETE FROM STUINFWHE
13、RE STUAGE 204.查询数据在SQL语言中,最常用、功能最强大的语句是SELECT语句。使用SELECT语句,不但可以检索到所需数据,还可以对检索到的数据进行简单的处理。1)基本查询语句将SQL语言中能实现基本查询功能的语句称基本查询语句,这类语句仅能实现简单的查询功能,其语法格式如下:SELECT FROM WHERE 通过基本查询语句,可以将符合条件的记录作为一个集合输出。可以在语句中指定需要显示的列,也可以用“*”表示显示所有列,例如,显示STUINF表中所有女生的完整记录,可以使用下面的语句:SELECT*FROM STUINFWHERE STUSEX=女2)扩展查询语句为了扩
14、充SELECT语句的功能,可以在展SELECT语句中添加扩查询选项。(1)DISTINCT选项。用于删除查询中重复的记录,例如,查找STUINF表中的STUCLASS列,如果使用语句:SELECT STUCLASS FROM STUINF 则查询结果中会出现重复,因为有多个学生会在同一个班级,改为下面的语句:SELECT DISTINCT STUCLASS FROM STUINF则一个班只显示一条记录。(2)GROUP BY选项。使用GROUP BY选项可以将查询结果按指定字段显示,其语法格式如下:SELECT FROM WHERE GROUP BY 例如,查询STUINF表中年龄大于20岁的
15、学生,并按性别显示,可以使用下面的语句:SELECT*FROM STUINFWHERE STUAGE 20GROUP BY STUSEX(3)ORDER BY选项。使用ORDER BY选项可以将查询结果按照指定字段中数据的规律进行排序,其语法格式如下:SELECT FROM WHERE ORDER BY 例如,将STUINF表中的记录按年龄大小进行排序,可以使用下面的语句:SELECT*FROM STUINFORDER BY STUAGE3)查询语句中的统计功能 在SQL语言中,不仅可以利用SELECT语句来查询数据,还可以通过在SELECT语句中添加函数对查询结果进行简单统计。(1)COUN
16、T函数。可以在SELECT语句中添加COUNT函数来统计符合条件记录的条数,其语法格式如下:SELECT COUNT()FROM WHERE 例如,要查找STUINF表中年龄小于20的女生数量,可以使用下面的语句:SELECT COUNT(*)FROM STUINFWHERE STUAGE 20 AND STUSEX=“女”(2)SUM函数与AVG函数。可以在SELECT语句中使用SUM函数与AVG函数分别计算查询结果中某个字段的数据之和与平均值。当然,参与计算的数据必须是数值型。SUM函数的语法格式如下:SELECT SUM()FROM WHERE AVG函数的语法格式如下:SELECT A
17、VG()FROM WHERE 例如,要计算STUINF表中男生的平均年龄可以使用下面的语句:SELECT AVG(STUAGE)FROM STUINFWHERE STUSEX=男(3)MAX函数与MIN函数。在SELECT语句中,可以使用MAX函数与MIN函数来求取符合条件数据中的最大值与最小值。MAX函数的语法格式如下:SELECT MAX()FROM MIN函数的语法格式如下:SELECT MIN()FROM 例如,需要查找STUINF表中女生的最大年龄与最小的年龄,可以使用下面的语句:SELECT MAX(STUAGE),MIN(STUAGE)FROM STUINFWHERE STUSE
18、X=女7.2 连接数据库连接数据库创建好数据库后,还需要将数据库与开发系统连接,才能进行数据库程序的开发。下面介绍连接数据库与开发系统的方法。7.2.1 数据库连接对象数据库连接对象为了在应用程序中安全、高效地访问数据库,Microsoft等软件开发公司提出了多种解决方案,其中有代表性的有ODBC、JDBC、BDE和ADO等连接模式。下面介绍其中的AOD连接模式。ADO(ActiveX Data Objects,动态数据对象)连接模式的前身是Microsoft提出的一种通用的基于组件对象模型(Component Object Model,COM)的数据访问规则与应用程序接口OLE DB。他是一
19、种独立的数据库连接结构,可以通过OLE DB提供的驱动程序与任何数据库进行连接。ADO连接模式则更好地封装了OLE DB的功能,支持多种数据库,切换数据源简单,可以更加方便快捷的访问数据库。使用ADO连接模式连接数据库与开发系统的主要步骤如下:(1)连接至数据库,并判断其中数据是否修改。(2)指定访问数据库的命令,通常是一条或多条SQL语句。(3)执行数据库访问命令。(4)返回执行结果,结果保存在ADO组件的数据缓冲区中,供应用程序调用。7.2.2 建立建立ADO连接连接建立ADO连接最简单的方法是创建一个通用数据连接(UDL)文件,该文件的后缀名为.udl。下面介绍具体的操作步骤。1.创建U
20、DL文件在Windows系统中不能直接创建UDL文件,需要先在记事本中建立一个文本文件,然后执行“文件”“另存为”命令,打开“另存为”对话框。选择保存类型为“所有文件”,将文件后缀名设置为.udl,如下图所示,然后单击“保存”按钮,即可创建一个UDL文件。建立UDL文件2.选择数据库驱动创建好UDL文件后,双击该文件,弹出“数据链接属性”对话框,单击“提供程序”选项卡,在“选择您希望连接的数据”列表框中选择要连接的数据。由于这里采用的是SQL Server数据库,所以选择Microsoft OLE Previder for SQL Server选项,如右图所示。选择需要连接的数据然后,单击“下
21、一步”按钮,打开“连接”选项卡,如下图所示。“连接”选项卡3.建立数据连接在“连接”选项卡中执行如下操作,完成数据库与应用系统的连接。(1)在“选择或输入服务器名称”下拉列表框中选择服务器名称。(2)再“输入登录服务器信息”选项区中华国选择登录数据库的方式,由于在安装SQL Server数据库时采用Windows NT集成安全模式(这是常用方式),所以选中“使用Windows NT集成安全设置”单选按钮,否则需要指定登录数据库的用户名和密码。(3)选中“在服务器上选择合适数据库”单选按钮,然后在下边的下拉列表框中选择要访问的数据库。(4)单击“测试连接”按钮,如果连接成功,则弹出提示成功的对话
22、框,如右图所示。至此,完成数据库连接文件的建立。测试连接成功7.2.3 数据库连接组件数据库连接组件Delphi系统提供了多种连接数据库的组件,下面主要介绍使用ADO面板中的组件连接数据库的方法。1.ADOConnection组件在Delphi程序设计中,可以使用ADOConnection组件 来连接数据库,该组件位于Delphi系统中ADO面板中,如下图所示。通过设置ADOConnection组件的属性来实现与数据库的连接。该组件的常用属性如下:1)ConnectionString属性ADOConnection组件的ConnectionString属性用于设置数据库的连接的模式。选中Conn
23、ectionString属性,单击属性值域右侧的 按钮,弹出Connection String对话框,如下图所示。在对话框中选中Use Data Link File单选按钮,单击Browse按钮,在弹出的“打开”对话框中选中前面建立的UDL文件,然后单击OK按钮即可。2)Connected与KeepConnected属性这两个属性均为布尔类型,当Connected属性为True时表示与数据库建立连接。当KeepConnected属性为True时表示与数据库保持连接。当然,只有在Connected的属性值为True时,Keep Connected属性值才能为True。3)LoginPromptL
24、oginPrompt属性值为布尔类型,当其值为True时,建立数据库连接时会弹出一个登录对话框,如下图所示。登录对话框由于在设置数据库连接属性时选择的是Windows NT集成安全设置,所以不需要填写用户名与密码,直接单击OK按钮即可。一般将LoginPrompt属性值设置为False,以免出现登录对话框。2.ADODataSet组件与ADOQuery组件使用ADOConnection组件建立与数据库的连接后,如果需要获得数据库中的数据,还需要使用其他组件,如ADODataSet和ADOQuery等组件。1)ADODataSet组件ADODataSet组件 位于组件面板的ADO面板中,使用该组
25、件,可以获取数据库中的数据并其保存在缓冲区中。ADODataSet组件的常用属性如下:(1)Connection。通常情况下,ADODataSet组件不直接与数据库连接,而是通过ADOConnection组件间接与数据库连接,方法为将ADODataSet组件的Connection属性设置为要连接的ADOConnection组件。(2)Active。该属性为布尔类型,用于设置是否允许使用ADODataSet组件,只有将Active属性值设置为True时,才能使用ADODataSet组件。(3)CommandText。这是ADODataSet组件最为重要的属性,其值为字符串类型,可以将Comman
展开阅读全文