第四章--数据库的设计与操作-Visual-FoxPro程序设计-教材课件.ppt
《第四章--数据库的设计与操作-Visual-FoxPro程序设计-教材课件.ppt》由会员分享,可在线阅读,更多相关《第四章--数据库的设计与操作-Visual-FoxPro程序设计-教材课件.ppt(73页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第四章第四章 数据库的设计与操作数据库的设计与操作本章主要内容:4.1概述4.2数据表的创建4.3数据表的操作4.4表的排序、索引与查询4.5数据表的统计与运算4.6多表操作4.7数据库及其基本操作4.1 概述概述4.1.1 基本概念基本概念Visual FoxPro的数据库是一个逻辑概念,主要用来组织和联系表。它是一个容器或框架,可以存放一系列数据库对象,如表、视图等。表是关系数据库管理系统中处理数据的基本单元,扩展名为.DBF。表是Visual FoxPro存储数据的文件。可分为数据库表和自由表两种,数据库表具有一系列优点。如:可以使用长表名和长字段名;可以为字段指定标题和添加注释;可以为
2、字段指定默认值和输入掩码;可以规定字段级规则和记录级规则;支持主关键字、参照完整性和表之间的联系,支持SQL的insert、update 和delete 事件的触发器定义。4.2 数据表的创建 4.2.1 数据表的创建 1创建表结构1)启动表设计器(1)菜单方式单击“文件”|“新建”,选择“文件类型”为表,再单击“新建文件”后,在出现的“创建”对话框里给新建的表确定保存路径、文件名和类型,单击“保存”按钮,即可打开表设计器如图4-3所示。图4-32输入记录数据表结构创建好后,就可以向数据表中输入记录。VFP提供了立即输入方式和追加输入方式。1)立即输入方式当表结构设计完成,就输入记录数据,即为
3、立即输入记录方式。输入完成后,可单击窗口关闭按钮或使用Ctrl+W/Ctrl+End组合键自动保存输入数据,按Esc键放弃存盘并退出输入窗口。2)追加输入方式在已经存在的表的末尾追加记录,需要先打开数据表,可以用菜单方式和命令方式实现。(1)在数据表处于浏览状态下,单击“显示”菜单下的“追加方式”,如图4-8所示,用户即可输入记录数据。(2)在命令窗口输入:APPENDBLANK说明:省略BLANK选项,则进入全屏幕编辑窗口,在该窗口可以输入多条记录;若有BLANK,则直接在数据表末尾增加一条空白记录,不进入全屏幕编辑窗口。图4-84.3 数据表的操作 4.3.1 打开与关闭表打开与关闭表1表
4、的打开1)菜单方式单击“文件”|“打开”,在弹出的“打开”对话框中,“文件类型”列表中选择“表(*.dbf)”,再选定要打开的表文件,单击“确定”即打开了选定的表文件,就可以对其进行相应操作,如浏览、修改等。2)命令方式格式:USE IN 工作区号Alias 说明:USE命令的用法相当灵活,这里给出的仅是USE命令的一种基本形式,一个工作区同时只能打开一个表,所以使用USE命令在一个工作区打开一表文件,该工作区中先前打开的表自动关闭。工作区与别名的概念参看4.7如果表中含有备注型字段,则打开表时,相应的备注文件(FPT)同时打开。刚建立的表自动处于打开状态,不需再用USE命令打开。USE xs
5、da.dbf&打开表文件时,扩展名可以缺省4.3.2 修改表结构修改表结构格式:MODIFY STRUCTURE 该命令启动当前所打开的表的设计器,以便修改其结构。说明:修改表结构包括添加和删除字段,修改字段名称、大小和数据类型,添加、删除或修改索引等。在更改表结构之前,系统会自动备份当前表。修改完成之后,将备份表中包含的数据追加到新修改后的表结构中。如果表中有备注类型字段,还将创建一个备注备份文件。表备份文件的扩展名为.BAK,备注备份文件的扩展名为.TBK。如果使用MODIFY STRUCTURE修改结构出现问题,可以删除新文件,把.BAK和.TBK改为原文件扩展名(.DBF和.FPT)即
6、可恢复原文件。4.3.3 浏览表中记录浏览表中记录数据表建立好后,需要显示(查看)数据表中的内容,显示数据表中记录有下列方式。l)菜单方式单击“文件”|“打开”命令,打开要浏览显示的数据表。单击“显示”|“浏览”命令。数据表中的记录便显示在浏览窗口上。也可在打开表之后,单击“显示”|“编辑”,此时,数据表的内容以编辑方式显示。浏览和编辑显示数据表中的记录时,属于全屏幕编辑操作,用户可以任意移动光标到需要的记录、字段上,并可直接对记录数据进行修改,也可向表中追加新记录。4.3.4 记录指针的定位记录指针的定位1记录指针的概念采用命令方式对表中记录进行编辑(增加、删除、修改)时,必须先打开相应的数
7、据表,并定位到相应记录上,才能对该记录进行编辑操作。VFP中,对任何打开的数据表文件,都提供了一个记录指针,用于完成记录的定位。记录指钍指向的记录称为当前记录。对表中记录的操作一般都是针对当前记录进行的。刚打开的数据表,记录指针总是指向第一条记录,但对数据表的操作将改变录指针的位置,可以用.BOF()和.EOF()函数来测试,根据函数的返回值“.T.”或“F”判断记录指针的位置。2记录指针的定位建立数据表时,每条记录都有一个编号,称为记录号,记录号依据输入记录的顺序从1开始依次编号。对记录指针的定位,实际上就是将记录指针移到指定的记录号上。方法有菜单操作方式和命令操作方式2种。4.3.4 记录
8、指针的定位记录指针的定位2.命令操作方式1)绝对移动格式:GOTO|TOP|BOTTOM功能:将记录指针定位到指定的记录上。说明:的值指明记录号,即直接按给定的记录号定位。选择TOP或BOTTOM则分别将记录指针定位到表文件的首、尾记录上。例4.3 用GO命令移动学生档案表(xsdab.dbf)中的记录指针。在命令窗口输入如下命令序列:USE xsdaGO 6&记录指针指向记录号为6的记录GO TOP&记录指针指向首记录GO BOTTOM&记录指针指向尾记录USE2)相对移动格式:SKIP功能:以当前记录为基准向前或向后移动记录指针。说明:的值指明记录指针移动的相对记录数。如果是负数,表示记录
9、指针向着记录号减小的方向(向前)移动;如果是正数,则向着记录号增大的方向(向后)移动。缺省,则记录指针向后移动1条记录。3用REPLACE命令修改记录格式:REPLACE 范围 WITH ADDITIVE,WITH ADDITIVEFOR|WHILE 功能:成批修改表的记录数据。说明:该命令不进入全屏幕编辑状态。缺省范围和FOR|WHILE时,只对当前记录进行修改。命令中必须要有一个修改的字段名,否则无效。该命令是唯一的能用表达式修改记录数据的命令,而且具有计算功能,是程序方式中最常用的修改记录字段值的方法。对于数值型字段,当表达式的值超过字段的宽度时,将按如下规则进行替换:首先截去小部分,并
10、对小数部分进行四舍五人;如果还放不下,则用科学计数法表示,并提示“数值上溢,数据已丢失。”;如果还是放不下,则用“*”填充该字段,数据丢失。对于字符型字段,当表达式的值超过字段的宽度时,则截去后面多余字符。ADDITIVE只对替换备注字段有用,可把对备注字段的替代内容追加到备注字段的后面。如果省略ADDITIVE,则用表达式的值改写备注字段原有内容。4.3.6 插入记录插入记录APPEND命令只能将记录追加到数据表末尾,如果想在两条记录之间插入记录,则需要在命令窗口中用插人记录命令来实现。格式:INSERT BLANK BEFORE功能:在当前记录之后或之前插人一条记录。说明:BLANK:表示
11、插入一条空白记录,缺省此项时,进入全屏幕编辑状态。BEFORE:表示在当前记录之前插入,缺省此项则在当前记录之后插入。例4.7 在学生档案表(xsda.dbf)中,要求在5号与6号记录之间插入1条空白记录。在命令窗口中输入如下命令:USE xsdaGO 5INSERT BLANK 表示在5号记录之后插入了一条空白记录,其记录号为6,原表中之后记录的记录号均依次增加1。4.3.7 记录的删除与恢复记录的删除与恢复VFP中,删除记录是经过两步完成的。第l步是给要删除的记录加上删除标记,称为逻辑删除,做了逻辑删除的记录并没有真正从数据表中删除,以后还可以恢复;要真正删除表中的记录,则执行第2步,删除
12、带有删除标记的记录,称为物理删除。1逻辑删除1)菜单方式打开要操作的数据表,用浏览或编辑方式显示该数据表中的记录;再用鼠标单击记录左边的逻辑删除标记块,标记块变成黑色,代表此记录已做了逻辑删除标记,如图4-16所示,有3条记录已做了逻辑删除。图4-16 逻辑删除记录2)命令方式格式:DELETE 范围 FOR|WHILE功能:对当前数据表中在指定范围内满足条件的记录作逻辑删除。若缺省范围和FOR|WHILE选项,则只对当前记录作逻辑删除。例4.8 4.3.7 记录的删除与恢复记录的删除与恢复2记录的恢复对作了逻辑删除的记录取消其逻辑删除标记称为记录的恢复。菜单方式可在浏览或编辑窗口中通过单击鼠
13、标,一条一条地恢复删除的记录。命令方式格式:RECALL 范围FOR 功能:恢复数据表中指定范围内满足条件的已有逻辑删除标记的记录,缺省范围和FOR,则对当前记录取消其逻辑删除标记。例4.9 恢复学生档案表(xsda.dbf)中所有作了逻辑删除的记录。命令序列为:USE xsdaRECALL ALL LISTUSE 命令方式格式:PACK MEMO DBF功能:从当前表中永久删除作了逻辑删除标记的记录,减少与该表相关的备注文件所占用的空间,即物理删除。说明:MEMO子句:从备注文件中删除未使用空间,但不从表中删除标有删除标记录。备注字段的信息保存在一个相关的备注文件内。备注文件的文件名与表相同
14、,扩展名为FPT。DBF子句:从表中删除带删除标标记的记录,但不影响备注文件。当使用PACK命令时,VFP把所有没作删除标记的记录录复制到一个临时表(Temporary Table)执行完PACK命令后,再把原表从磁盘上删除,同时用原表名命名临时表。例4.10 4.3.7 记录的删除与恢复记录的删除与恢复4清空数据表命令格式:ZAP功能:删除表中所有记录,只保留表的结构。说明:ZAP命令等同DELETE ALL和PACK联用,但ZAP速度更快。如果SET SAFETY为ON,VFP会提示是否要从当前表中删除记录。发出ZAP命令,不会引发删除触发器。有关为表创建触发器的详细内,将在后面介绍。例4
15、.11 删除xsda.dbf数据表文件中的全部记录。USE xsdaZAP数据表xsda.dbf中所有记录被彻底删除,记录数为0,但该数据表的结构仍存在。4.3.8 表的复制表的复制1.表结构的复制格式:COPY STRUCTURE TO FIELDS功能:将当前数据表的结构复制到指定的数据表文件中,新表的字段数和字段顺序由“FIELDS”子句决定。例4.12 把学生档案表(xsda.dbf)中的学号、姓名、性别、班级字段复制成一个新表XS.DBF,新表中只有结构定义,没有记录数据。命令序列为:USE xsdaCOPY STRU TO XS FIEL学号,姓名,性别,班级USE XS&打开XS
16、表LIST STRU&显示XS表结构2.表记录的复制格式:COPY TOFIELDS FOR|WHILE 功能:将当前表中在指定范围内满足条件的记录,按指定的字段复制生成一新表文件。例4.12 4.4.2 数据表索引的概念数据表索引的概念1.索引的概念索引是对数据表中某一关键字段或表达式的值按照一定的规则进行排序,并根据排序的结果建立索引文件。在VFP中,建立索引文件实际上是建立一个由指定索引字段的值和它对应的记录号组成的索引表。用索引进行排序不会改变表中记录的物理顺序,也不会建立一个新表。因此一个表可以拥有多个索引,用户也可以按多种不同的顺序使用表中的记录。但任何时候只有一个索引起作用。索引
17、文件和表文件是分开存储的,但是索引文件不能独立使用,必须与原数据表一起工作。索引具有自动更新的特性,即当索引文件打开后,对表进行记录的添加、删除、修改时,相应的索引会自动进行更新。2.索引的分类根据对索引关键字的不同要求,将索引分为四种类型。主索引在主索引中,用作排序依据的关键字段或表达式中不允许出现重复值。主索引只能在数据表中建立,并且一个数据表只能创建一个主索引。候选索引候选索引也不允许在用作排序依据的关键字段或表达式中出现重复值。它们在表中有资格被选作主索引,即主索引的候选者。一个表中可以有多个候选索引。唯一索引允许在用作排序依据的关键字段或表达式中出现重复值,但在唯一索引中,只包含表中
18、第一个与关键字或表达式相匹配的记录,对于那些具有重复值的记录则不包含在唯一索引中。普通索引是建立索引时的默认类型,可用于记录排序和搜索记录。普通索引允许在用作排序依据的关键字段或表达式中出现重复值,而且一个表中可以建立多个普通索引。4.4.3 索引文件的建立、使用和删除索引文件的建立、使用和删除1建立索引文件1)建立单索引文件格式:INDEX ON TO FOR|WHILEADDITIVE 功能:根据的值建立一个索引文件,其扩展名为.idx。说明:只能是字符型、数值型、日期型和逻辑型数据。可以是表中的一个字段或多个字段组成的表达式,当表达式中各字段的数据类型不同时,必须转换为相同的数据类型,且
19、必须转换成字符型。FOR|WHILE 指定对满足条件的记录建立索引文件。若选择了ADDITIVE可选项,则执行该命令前不关闭已打开的索引文件;否则,将关闭已打开的索引文件。单索引文件只能按的值升序排列。例4.14 4.4.3 索引文件的建立、使用和删除索引文件的建立、使用和删除2)建立结构复合索引文件(1)用表设计器建立结构复合索引文件在表设计器中,只要设置了索引就自动创建了结构复合索引文件。建立结构复合索引文件的方法如下:打开数据表,然后打开表设计器。选择字段选项卡,在需要设置索引的字段右边对应的索引下拉列表中选择升序或降序,建立的索引为单个字段的普通索引。选择索引选项卡,则可建立主索引、候
20、选索引、唯一索引、普通索引4种类型的结构复合索引文件。具体步骤如下:在索引名框中,输入索引标识名。在类型下拉列表框中,选择索引类型。在表达式框中输入用于索引的字段名。或单击表达式框右边的按钮启动表达式生成器来建立索引表达式。如果要对满足条件的记录索引,可在筛选框中输入筛选表达式。如果要使用降序排序,单击位于索引名左边的升、降序按钮。默认顺序为升序。单击确定按钮,在弹出的提示对话框中单击是按钮。说明:上述方法建立的索引为结构复合索引,结构复合索引文件名与表文件同名,而扩展名为.cdx。4.4.3 索引文件的建立、使用和删除索引文件的建立、使用和删除2.命令方式建立结构复合索引文件格式:INDEX
21、 ON TAG FOR|WHIIE ASCENDING|DESCENDING说明:第一次建立索引时,将生成一个与数据表文件同名而扩展名为cdx的结构复合索引文件。结构的含义:VFP把该文件当作表的组成部分来处理,当表文件打开时就自动打开,如果结构复合索引文件丢失或损坏,则数据表文件也不能打开。“索引标识名”作为索引的标识,存放在cdx文件中。一个cdx文件可以包含多个各不相同的标识名。“ASCENDING|DESCENDING”用来指定索引排序方式,前者为升序,后者为降序。该命令建立的是普通索引。例4.16 对奖学金记录表(jxj.dbf)按“奖学金类型”升序排列,类型相同时按“奖学金 4.4
22、.3 索引文件的建立、使用和删除索引文件的建立、使用和删除3)非结构复合索引文件格式:INDEX ON TAG OF FOR ASCENDING|DESCENDING说明:非结构复合索引文件与结构复合索引文件的区别是,在建立时要由用户给出复合索引文件名,并且它不随数据表文件的打开而自动打开,也不影响数据表的打开。4.4.3 索引文件的建立、使用和删除索引文件的建立、使用和删除2索引的使用索引提供对数据的快速访问,使用索引能够提高数据查询的性能。要实现索引查询,表和相应的索引文件必须要打开,还要确定相应的主控索引文件。若主控索引文件为结构复合索引文件,还必须进一步指定主控索引标识。一个表可以同时
23、打开多个索引,但任何时刻只能有一个索引起作用。所谓主控索引文件,是指同时打开的多个索引文件中当前正起作用的索引文件,所谓主控索引标识,是结构复合索引文件所包含的多个索引标识中当前正起作用的索引标识。通常情况下,将主索引文件或主控索引标识简称为主控索引。打开单索引文件或非结构复合索引文件单索引文件或非结构复合索引文件要使用时,通常使用相应的命令先打开。(1)打开数据表的同时打开索引文件格式:USE INDEX 功能:在打开指定表的同时打开与其相关的1个或多个索引文件。说明:INDEX子句用于指定要打开的索引文件(最多7个)。打开多个索引多件时,索引文件之间用逗号分隔,第1个索引文件自动成为主控索
24、引文件。例4.17 4.4.3 索引文件的建立、使用和删除索引文件的建立、使用和删除(2)索引文件单独打开格式:SET INDEX TO ADDITIVE功能:为当前表打开指定的一个或多个索引文件。说明:索引文件列表用于指定要打开的一个或多个索引文件(最多7个),索引文件列表中,第1个索引文件将自动成为主控索引文件。若无 ADDITIVE,则随着新索引文件的打开,以前打开的索引文件会自动关闭。2)关闭索引文件索引文件使用完后应关闭。由于索引文件是依赖于数据表而存在的,所以关闭数据表文件的同时,索引文件也将关闭。另外,单独关闭索引文件的命令有:SET INDEX TO功能:关闭当前工作区中打开的
25、索引文件。CLOSE INDEX功能:关闭所有工作区中打开的索引文件。说明:刚创建的索引处于打开状态,并且自动成为主控索引。结构复合索引文件随表的打开而自动打开。表关闭时,与该表相关的所有打开的索引文件也自动关闭。3)设置主控索引当同时打开了多个独立索引文件或结构复合索引文件中包含多个索引标识时,需要指定当前起作用的索引即主控索引。格式:SET ORDER TO|TAG 功能:指定相应的索引为主控索引。例4.184.4.3 索引文件的建立、使用和删除索引文件的建立、使用和删除3重建索引如果在索引文件打开状态下,对数据表进行编辑修改时,系统会自动修改索引文件。但是如果在索引文件打开前,对数据表中
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第四 数据库 设计 操作 Visual FoxPro 程序设计 教材 课件
限制150内