数据库与表的创建和操作.ppt

上传人:牧羊曲112 文档编号:6578408 上传时间:2023-11-14 格式:PPT 页数:73 大小:369.50KB
返回 下载 相关 举报
数据库与表的创建和操作.ppt_第1页
第1页 / 共73页
数据库与表的创建和操作.ppt_第2页
第2页 / 共73页
数据库与表的创建和操作.ppt_第3页
第3页 / 共73页
数据库与表的创建和操作.ppt_第4页
第4页 / 共73页
数据库与表的创建和操作.ppt_第5页
第5页 / 共73页
点击查看更多>>
资源描述

《数据库与表的创建和操作.ppt》由会员分享,可在线阅读,更多相关《数据库与表的创建和操作.ppt(73页珍藏版)》请在三一办公上搜索。

1、第4章 数据库与表的创建和操作,本章学习目标,通过本章学习,读者应该掌握以下内容 1、数据库的建立和操作 2、表的建立与操作3、记录的操作、排序4、索引的分类、建立与使用5、数据完整性6、多表的操作7、表的关联,4.1.1 数据库概述从第二章可知Visual FoxPro 是从dBASE、Foxbase、Foxpro历时多年发展过来的。在Foxpro 2.x及更早的版本中,都是直接建立、管理和使用扩展名为DBF的数据库文件,这些数据库文件彼此是独立的,没有一个完整的数据库概念和管理方法。当发展到Visual FoxPro 时才引入数据库的概念,才将扩展名为DBF的数据库文件组织在一起管理,使它

2、们成为相互关联的数据集合。在Visual FoxPro中,数据库是一个逻辑上的概念和手段,通过一组系统文件将相互联系的表及其相关的数据库对象统一组织和管理。因此,在Visual FoxPro中应该把DBF文件称做数据库表,简称表。在建立Visual FoxPro 数据库时,会产生扩展名为DBC的数据库文件、DCT数据库备注文件和DCX数据库索引文件,这三个文件是用来管理数据库文件的。,4.1 数据库,建立数据库1命令方式【格式】CREATE DATABASE|?【功能】建立一个新的扩展名为.DBC的数据库文件并打开此数据库。【说明】指定生成的数据库文件,若省略扩展名,则默认为.DBC,同时也自

3、动建立相关联的数据库备注文件,扩展名为.DCT,关联的索引文件扩展名为.DCX。如果未指定数据库文件名或用“?”代替数据库名,Visual FoxPro系统会弹出创建对话框,以便用户选择数据库建立的路径和输入数据库名。,2菜单方式用菜单方式建立数据库的具体步骤如下:(1)选择【文件】【新建】出现新建对话框。(2)选择“数据库”单选按钮,再单击“新建文件”按钮,出现“创建”对话框。(3)在“创建”对话框中输入文件名。选择“保存”按钮,系统自动打开数据库文件,并且将数据库设计器也自动打开。3利用项目管理器建立数据库打开已建立的项目文件,出现项目管理器窗口,选择“数据”标签的“数据库”,然后单击“新

4、建”按钮。出现新建数据库对话框,单击“新建数据库”按钮,出现“新建”对话框,选择数据库的路径并输入数据库名后单击“保存”按钮,完成数据库的建立,并打开该数据库设计器。,4.1.3 使用数据库在数据库中建立表或使用数据库中的表时,都必须先打开数据库,打开数据库的方式也有三种:1命令方式【格式】OPEN DATABASE|?EXCLUSIVE|SHAREDNOUPDATEVALIDATE【功能】打开一个已经存在的数据库。【说明】|?:要打开的文件名,可以缺省,如果不指定数据库文件名或用?,则显示“打开”对话框。EXCLUSIVE:以独占方式打开数据库,不允许其他用户在同一时刻也使用该数据库。SHA

5、RED:以共享方式打开数据库,允许其他用户在同一时刻也可以使用该数据库。NOUPDATE:指定数据库按只读方式打开,不允许对数据库进行修改。VALIDATE:指定Visual FoxPro检查在数据库中引用的对象是否合法。Visual FoxPro在同一时刻可以打开多个数据库,但在同一时刻只有一个当前数据库,指定当前数据库的命令是:SET DATABASE TO 数据库名,2菜单方式用菜单方式打开数据库的具体步骤如下:(1)选择【文件】【打开】出现打开对话框。(2)选择文件类型“数据库”,出现所有数据库文件。(3)选择一个数据库文件,单击“确定”按钮。3利用项目管理器打开数据库打开已建立的项目

6、文件,出现项目管理器窗口,选择“数据”标签的“数据库”,单击“+”展开数据库,选中对应数据库文件,单击“打开”按钮。,4.1.4 修改数据库修改数据库实际是打开数据库设计器,用户可以在数据库设计器中完成各种数据库对象的建立、修改和删除等操作。1命令方式【格式】MODIFY DATABASE|?NOWAITNOEDIT【功能】打开数据库设计器。【说明】|?:要修改的数据库名,可以缺省,如果不指定数据库文件名或用?,则显示“打开”对话框。NOWAIT:是在数据库设计器打开后程序继续执行。NOEDIT:是打开数据库设计器,而禁止对数据库进行修改。2菜单方式用菜单方式打开数据库设计器的具体步骤如下:(

7、1)选择【文件】【打开】出现打开对话框。(2)选择文件类型“数据库”,出现所有数据库文件。(3)选择一个数据库文件,选择“确定”按钮。3利用项目管理器修改数据库打开已建立的项目文件,出现项目管理器窗口,选择“数据”标签的“数据库”,单击“+”展开数据库,选中对应数据库文件,点击“修改”按钮。,删除数据库1命令方式【格式】DELETE DATABASE DELETETABLES RECYCLE【功能】从磁盘上删除一个扩展名为.DBC的数据库文件。【说明】DELETE DATABASE:被删除的数据库不能处于打开状态。被删除的数据库中的表成为自由表。数据库文件名可以包括数据库的路径和数据库名字。如

8、果用“?”代替数据库文件名,将显示打开对话框,用户可从打开对话框中选择要从磁盘上删除的数据库的名字。DELETETABLES:删除数据库文件同时也删除该数据库所含有的表等文件。RECYCLE:删除文件时放入Windows的回收站中,如果需要还可以还原它们。,2使用项目管理器打开已建立的项目文件,出现项目管理器窗口,单击“数据”标签,选择要删除的“数据库”,然后单击“移去”按钮。出现下图选择对话框,若选择“移去”仅将数据库从项目中移去,若选择“删除”将从磁盘上删除数据库。被删除的数据库中的表成为自由表。取消是取消当前操作,不进行删除数据库的操作。,数据库的关闭数据库文件操作完成后,或暂时不用时,

9、必须将其关闭,保存在外部存储器中以确保数据的安全性。关闭数据库文件有以下几种方式:1命令方式【格式】CLOSE ALL|DATABASE【功能】关闭当前打开的数据库。【说明】ALL用于关闭所有对象。如数据库、表、索引、项目管理器等。DATABASE关闭当前数据库和数据库表;如果当前没有打开的数据库,则关闭所有打开的自由表、所有工作区内所有索引和格式文件。2利用项目管理器关闭数据库打开已建立的项目文件,出现项目管理器窗口,选择“数据”标签,选择“数据库”下面需要关闭的数据库名,然后单击“关闭”按钮。在常用工具栏上的当前数据库下拉列表框中该数据库名消失,同时在项目管理器中“关闭”按钮变成“打开”按

10、钮。,4.2 表,表的类型1表的分类在Visual FoxPro中,表是收集和存储数据的基本单元,表是扩展名为.DBF的一类文件,如果有备注或通用型字段则还会有一个对应扩展名为.FPT的文件。根据表的不同关系和存放形式,可以将表分为两类:一类为自由表,另一类为数据库表。自由表是不属于任何数据库的表。数据库表是包含在数据库中的表。2自由表与数据库表的区别相比之下,数据库表的优点要多一些。当一个表是数据库的一部分时,它就可以具有以下内容:长表名和表中的长字段名 表中字段的标题和注释 默认值、输入掩码和表中字段格式化 表字段的默认控件类 字段级规则和记录级规则 支持参照完整性的主关键字索引和表间关系

11、 INSERT、UPDATE或DELETE事件的触发器,创建表结构 前面我们已经知道表有两种,一种是数据库表,另一种是自由表。如果建表时数据库是打开的,则建立的表为当前数据库表,否则,建立自由表。无论建立那种表,其方法都相同。一个表由表结构和表记录两部分组成。表名:每张数据表都有一个表名称,数据表就以表名称为主文件名,以.DBF为扩展名,将数据存储在存储器上。表头(表结构):由若干标题栏目构成,每栏对应着表的一列,反映学生某一方面的情况。一列称为一个字段(属性),确定表中的字段,主要是为每个字段指定名称、数据类型和数据宽度,这些信息决定了数据在表中是如何被标识和保存的。表的内容:内容是由若干行

12、组成的,每行反映了某一学生的各方面情况,称为表的一个记录。,建立表结构的方法有很多,在这里主要讲述三种方法:命令方式、菜单方式和使用项目管理器的方式。1命令方式【格式】CREATE|?【功能】建立一个新的、扩展名为.DBF的表文件。【说明】指定生成的表文件名,若缺省扩展名,则默认为.DBF。如果使用“?”或末指定表文件名,Visual FoxPro系统会弹出创建对话框,以便用户输入表名。2菜单方式(1)选择“文件”菜单的“新建”命令,出现如图4-3所示对话框,在“文件类型”中选择“表”单选按钮。在“新建”对话框中可以选择“新建文件”按钮或“向导”按钮来完成表的定制。(2)单击“保存”按钮。,3

13、用项目管理器新建表打开已建立的项目文件,出现项目管理器窗口,在“数据”选项卡中选择“自由表”,然后单击“新建”按钮。出现新建表对话框,确定需要建立表的路径和表名,按“保存”按钮。用此三种方式建立表结构,最后都会弹出如图 所示的“表设计器”,表设计器介绍:表设计器对话框中包含“字段”、“索引”、“表”三个选项卡。1“字段”选项卡适用于建立表结构,确定表中每个字段的字段名、字段类型、字段宽度和小数位数等。若建立的是数据库表,则下面还有显示、字段有效性等框,字段的显示属性 格式:控制字段在浏览窗口、表单、报表等显示时的样式。输入掩码:控制输入该字段的数据的格式。标题:若表结构中字段名用的是英文,则可

14、以在标题中输入汉字,这样显示该字段值时就比较直观了。没有设置标题,则将表结构中的字段名作为字段的标题。字段有效性 规则:限制该字段的数据的有效范围。在规则中输入:性别=男.OR.性别=女。这样当给“性别”字段输入记录值时就只能输入“男”或“女”。规则是一个逻辑型表达式。信息:当向设置了规则的字段输入不符合规则的数据时,就会将所设置的信息显示出,信息是字符型常量,如“性别只能是男或女!”。默认值:当往表中添加记录时,系统向该字段预置的值。在“性别”字段中输入默认值为“男”。输入记录时只有女生才需要改变默认值,可以减少输入。,2索引选项卡用来建立各种类型的索引,在后面会有详细介绍。索引是用户用希望

15、的方式排列表中数据的一个标志。排序:表明该索引是按升序还是降序排列,可单击该按钮改变升、降序。索引名:用来识别该索引的名称。类型:定义索引是普通索引、唯一索引、候选索引还是主索引。注意只有数据库表才有主索引。表达式:一种形式较为复杂的索引,指定索引表达式,如一个字段名。单击此按钮可以在“表达式生成器”中创建或编辑一个表达式。单击表达式右边的小按钮,可进入“表达式生成器”。筛选:指定筛选表达式。单击此按钮可以在“表达式生成器”对话框内创建或编辑一个表达式。,3表选项卡字段选项卡上主要介绍的是字段属性,它控制了字段值的输入,表选项卡则对表的记录属性进行描述,控制记录数据。在这里主要介绍记录有效性和

16、触发器。.,4、四个按钮介绍确定:确认完成的修改,若选择“是”,则接受修改,关闭表设计器。,取消:放弃刚才的修改,若选择“是”,则不接受修改,关闭表设计器。,删除:删除选定的字段。插入:在选定的字段前插入一个新的字段。,表数据的录入1立即追加数据如果刚建好表结构时,在系统提示是否立即输入记录的对话框中选择“是”可直接进入记录编辑窗口。如果选择了“否”,再想输入表记录就要以追加方式输入记录。2直接追加数据直接追加表记录的方法又分为命令方式和菜单方式两种方法。命令方式【格式】APPEND BLANK【功能】在当前已打开表的末尾追加一条或多条记录。【说明】BLANK:表示在表末尾追加一条空记录,并自

17、动返回命令窗口,此时系统并不弹出编辑窗口。,菜单方式(1)首先打开表学生.DBF。(2)选择【显示】|【追加方式】命令,可以追加多条记录。或者选择【显示】|【浏览】命令,然后再选择【表】|【追加新记录】命令,用户可以追加一条记录。,3特殊类型数据的录入在编辑窗口中,数据可通过按记录逐个字段输入。字符型和数值型的数据输入与修改比较简单,这里要说明其他类型的数据的输入方法:逻辑型字段只接受T、Y、F、N(不区分大小写)。日期型字段的年月日之间的分隔符已经存在,默认按月月/日日/年年格式输入即可。备注型与通用型已分别用memo与gen(小写)标志,表示要用特殊的方式输入或修改数据。当光标停留在mem

18、o或gen区时,如果不想输入数据,则可按回车键跳过该字段;如果要输入数据,则双击则可打开一个编辑窗口,可以录入数据,然后关闭该编辑窗口,这时会发现其字段标志首字母显示为大写Memo或Gen。要修改数据则通过双击返回到编辑窗口,便可进行修改。,4.3 表的打开、显示和关闭,4.3.1 打开表表文件建好后,以文件的形式保存在磁盘上,在进行各种操作之前,首先必须打开表。打开表的过程实质上就是将表从磁盘调入内存,这样就可以对表中的数据进行各种操作。系统在任何时刻都只能对内存中的表进行访问。表文件打开时,记录指针指向首记录。1命令方式【格式】USE【功能】打开指定磁盘的指定路径下的表文件。【说明】和:指

19、定表文件所在的驱动器及路径,若省略盘符和路径参数,则打开当前盘、当前路径下的表文件。数据库名!表文件名:指定打开指定数据库中的表文件。若末指定数据库名,则在当前数据库中查找,没有则在自由表中查找。2菜单方式单击“文件”菜单,选择“打开”命令,选择文件类型为“表”,选中所需的表文件,单击“确定”按钮。,4.3.2 表文件的显示对已建立的表文件,Visual FoxPro提供了许多显示其结构和内容的方法。1表结构的显示【格式】LIST|DISPLAY STRUCTURE【功能】对打开的表以列表或分屏的方式显示其结构。,2表记录的显示命令方式。【格式】LIST|DISPLAY FIELDS FOR

20、WHILE OFF【功能】将当前表文件的记录按照指定的选项进行显示。【说明】DISPLAY命令与LIST命令的功能相似,当表文件的数据记录较多时,用DISPLAY命令较为方便。还有一点不同之处就是,如果同时缺省和子句,DISPLAY命令只显示当前的一条记录,而LIST命令则是取默认值ALL而显示全部记录。FIELDS:用来指定显示的字段。:用来指定显示哪些记录。,浏览窗口显示记录。【命令】BROWSE FIELDS FOR【菜单】打开表【显示】|【浏览】命令,这时还可以选择【显示】|【浏览】或【编辑】来改变浏览窗口显示方式。,表的关闭表文件操作完成后,或暂时不用时,必须将其关闭,保存到外存中以

21、确保数据的安全性。关闭表就是将表文件从内存中调出,保存在磁盘上。关闭表文件有以下几种方式:1打开另一个表文件如果工作区中已打开一个表文件,打开另一表文件时,系统将自动将先前打开的表文件关闭。2使用不带任何选项的USE命令【格式】USE【功能】关闭当前已打开的表文件。3使用CLEAR命令【格式】CLEAR ALL【功能】关闭所有工作区中已打开的表文件、索引文件、格式文件及备注文件等,同时释放所有的内存变量。并选择工作区1为当前工作区。4使用CLOSE命令【格式】CLOSE ALL【功能】关闭各种类型文件,并选择工作区1为当前工作区。5退出Visual FoxPro系统【格式】QUIT【功能】退出

22、Visual FoxPro系统,并关闭所有打开的文件,返回操作系统。,表的删除1删除自由表【格式】DELETE FILE 表文件名.DBF【功能】将指定的表文件从磁盘上删除。【说明】如果删除的表文件存在有与之相关的.fpt备注文件和(.cdx或.idx)索引文件,则同时删除这些文件。删除一个表文件,应保证该表文件是处于关闭状态的。若不指定文件名,系统会弹出“删除”对话框,选择要删除的表文件路径、文件类型及文件名后,单击“删除”按钮。2删除数据库表先将数据库表从数据库中移去,然后再用删除自由表的方法进行删除。移去数据库表的命令是:【格式】REMOVE TABLE 表文件名|?DELETERECY

23、CLE【功能】从当前数据库中移去一个表。【说明】表文件名:准备从数据库中移去的表文件名。选择?将出现移去对话框,从中选择一个要从当前数据库中移去的表。选择DELETE在移去数据库表的同时,从磁盘上删除。选择RECYCLE在移去数据库表的同时,不会立即从磁盘上删除,而是放入回收站中。,3在项目管理器中删除表在项目管理器中选中需要删除的表,选择“移去”按钮或选择主菜单中【项目】|【移去文件】命令,出现一个选择对话框,若选择“移去”按钮,则将表文件移出项目文件,若选择“删除”按钮,则将表文件从磁盘上删除。,4.4 表的修改与编辑,1命令方式【格式】MODIFY STRUCTURE【功能】将当前已打开

24、的表文件的表设计器打开并进行修改。【说明】要修改表结构必须要先打开需要修改结构的表文件。如果当前工作区中没有已打开的数据库,执行此命令时系统会弹出“打开”对话框,以便用户选择需要修改表结构的文件名及路径等信息,用户选择完成后,系统将弹出表设计器对话框。2菜单方式单击“文件”菜单选择“打开”命令打开一个表文件选择“显示”菜单选择“表设计器”命令。,4.4.2 表记录的修改和编辑1记录指针的定位Visual FoxPro为当前表文件设置了一个记录指针,指针所指向的记录称为当前记录。一张表刚打开时,记录指针自动指向第1条记录。对表的数据进行操作之前,通常要先进行记录指针的定位,即移动记录指针使它指向

25、某条记录。记录指针定位有绝对定位、相对定位和条件定位三种。,绝对定位【命令】GO|GOTO【功能】将记录指针绝对定位到指定的记录上;TOP是表头,当不使用索引时是记录号为1的记录,使用索引时是排在最前面的索引对应的记录。BOTTOM是表尾,当不使用索引时是记录号最大的那条记录,使用索引时是排在最后面的索引对应的记录。相对定位【命令】SKIP【功能】记录指针从当前记录向前(或向后)移动若干个记录。【说明】:表示移动的记录个数。若数值表达式的值为负值,表示向前移动记录;否则,表示向后移动记录。如果缺省此项,则表示向后移动1个记录。条件定位【命令】LOCATE FOR【功能】将记录指针定位在满足条件

26、的第一条记录上,如果没有满足条件的记录则指针指向文件结束位置。【说明】要使指针指向下一条满足条件的记录,使用CONTINUE命令。LOCATE FOR与CONTINUE必须配对使用。,2修改记录在表的使用维护过程中,有大量的工作是对数据记录的修改、编辑与更新,通常可以采用编辑修改、浏览修改和替换修改三种方式。编辑修改【格式】EDIT|CHANGEFIELDS FOR WHILE【功能】按照给定条件编辑修改当前打开的表文件的记录。【说明】FIELDS:若选择此选项,则只列出字段名表中的字段,且显示顺序同中的顺序;若未选择此选项,将显示表中的所有字段,显示顺序同表中的字段顺序。:若未选择此选项,则

27、EDIT/CHANGE命令的范围为全部记录。FOR 和WHILE:同前面其他命令所述,在此不再重复叙述。,浏览修改浏览修改有命令和菜单两种方式:【命令】BROWSE FIELDS FOR【功能】显示当前表的记录内容,以供编辑修改。【说明】编辑结束后,退出BROWSE编辑窗口。【菜单】打开表选择【显示】|【浏览】命令,系统弹出记录浏览窗口。在浏览窗口中编辑修改数据内容,完成后退出浏览窗口。替换修改用浏览的方法只能一条一条地对记录进行编辑修改,如果同时对一批记录的某个字段或某些字段进行编辑,可以使用命令REPLACE。【命令】REPLACE WITH ADDITIVE,WITH ADDITIVE.

28、FOR WHILE【功能】用指定表达式的值替换当前表中满足条件记录的指定字段的值。【说明】该命令适合对当前表进行成批地、有规律地修改。缺省范围、条件时,仅替换当前记录。该命令回车后,数据修改自动完成。适用于程序设计。ADDITIVE只对备注型字段修改有效。表示将表达式值添加到字段的原有内容后面,否则取代原有内容。表达式的类型必须与字段类型一致。表达式的值不能超出字段宽度,否则,数据无效。,3插入记录【命令】INSERT BEFORE BLANK【功能】在当前表文件的指定位置插入新记录或空记录。【说明】INSERT是在当前记录之后插入新记录,INSERT BEFORE是在当前记录之前插入新记录,

29、INSERT BLANK是在当前记录之后插入空记录。若表文件建立了索引,则插入的新记录按索引值进行排列。,4逻辑删除记录表记录的删除也是表维护的一项经常性的工作,因为删除意味着数据的消失,所以对记录的删除操作比较慎重,删除可分为逻辑删除和物理删除两种操作。逻辑删除还可以恢复,而物理删除则不可恢复。逻辑删除就是给指定的记录作删除标记。用命令为记录做删除标记【格式】DELETE FOR WHILE【功能】对当前表中指定范围内满足条件的记录作删除标记。【说明】DELETE命令仅仅是在要删除的记录前加上一个删除标记,并不是真正地从表文件中将该记录删除掉。,FOR、WHILE等各项选项意义同前;如果同时

30、缺省和 子句,则仅仅删除当前的记录。,在“浏览”窗口中做删除标记首先打开表文件。然后选择【显示】|【浏览】命令,系统弹出记录浏览窗口,显示表中的记录。单击每个要删除记录左边的小方框,出现黑色小方块即可,再次单击可取消黑色小方块即取消删除。,5恢复逻辑删除记录恢复逻辑删除是将被逻辑删除的记录恢复为正常记录。即去掉删除标记。命令方式【格式】RECALL FOR WHILE【功能】将当前表文件中指定范围内满足条件的已作删除标记的记录恢复,即去掉这些删除记录的删除标记,使之成为正常记录。【说明】RECALL命令与DELETE命令相对应,它可以去掉被逻辑删除记录的删除标记。,FOR、WHILE等各项选项

31、意义同前;如果同时缺省和 子句,则仅仅恢复当前记录。,菜单方式首先打开表文件选择【显示】|【浏览】命令选择【表】|【恢复记录】命令,出现类似下图所示对话框。余下操作与“删除”对话框的操作相同。,6物理删除记录物理删除是将当前表文件中被逻辑删除的记录全部清除。命令方式【格式】PACK【功能】将当前表文件中所有带删除标记的记录全部真正地删除掉。【说明】执行该命令后被删除的记录将不能被恢复,因此使用时应特别小心。,菜单方式利用菜单方式物理删除表记录的具体步骤如下:首先打开表文件选择【显示】|【浏览】命令,系统弹出记录浏览窗口,显示当前表中的记录。主菜单上增加【表】菜单选择【表】|【彻底删除】命令,出

32、现图所示的“确认”对话框。单击“是”按钮,完成物理删除过程。,7删除全部记录【格式】ZAP【功能】将当前打开的表文件中的所有记录完全删除掉。【说明】执行该命令之后,将只保留表文件的结构,而不再有任何数据存在。这种删除无法恢复,因此,为防止用户发生错误操作而删除有用的表文件记录,执行该命令时,系统会弹出提示窗口,以确认是否删除全部记录,单击“是”按钮清除所有记录,单击“否”按钮放弃ZAP操作。ZAP相当于DELETE ALL 和PACK两条命令。,数据表与数组之间的数据交换在Visual FoxPro中,数据表与数组之间进行数据交换是应用程序中经常使用的一种操作,具有传送数据多、速度快和使用方便

33、等优点。1将当前记录复制到数组使用命令SCATTER将当前记录按字段顺序复制到指定的数组中。【命令】SCATTER FIELDS MEMO TO【功能】将当前记录的字段值按顺序依次送入数组元素中。【说明】FIELDS:若选择它只传送字段名表中的字段值,否则将传送所有字段值(备注型和通用型除外)。若要传送备注型字段值,还需要使用MEMO。TO:将数据复制到所示的数组元素中,如果定义的数组长度不够,Visual FoxPro会自动扩大数组长度。,2将数组的数据复制到当前记录将数组的数据复制到当前记录可以使用命令GATHER。【命令】GATHER FROM FIELDS MEMO【功能】将数组中的数

34、据依次复制到当前记录,以替换相应字段值。【说明】修改记录前需确定记录指针位置。FIELDS:仅字段名表中的字段值被数组元素替代,否则将按顺序依次替代,多出的字段不改变;若数组元素多于记录中字段个数,则多余数组元素被忽略。若不选用MEMO,则忽略备注字段。,4.5 排序,为了高效方便地存取数据,往往要求表记录以一定的顺序排放或显示,因此,Visual FoxPro提供了两种方法重新组织数据,即排序和索引。排序是从物理上对表进行重新整理,按照指定的关键字段的值的大小来重新排列表中数据记录的顺序,并产生一个新的表文件。由于新表的产生即费时间也浪费空间,实际中很少用。,排序的命令是:【格式】SORT

35、TO ON/A|/D/C,/A|/D/C.ASCENDING|DESCENDING FOR WHILE FIELDS【功能】对当前打开的表,按指定的字段进行排序,生成新的表文件。【说明】用作排序的字段的数据类型允许是N、C、D、L型。/A 表示升序,字段的值从小到大;/D 表示降序,字段的值从大到小;/C 表示不区分大小写,/C可以与/A或/D合用,如/AC或/DC。当有多个关键字段时,先按字段1的值排列,其值相同的,再按字段2的值排列。该命令执行后,当前表不变,产生的新表不会自动打开。FIELDS:新表的结构可以与原表相同,也可以只取部分字段。,4.6 索引,索引及索引文件的概述索引是从逻辑

36、上对表进行重新整理,按照指定的关键字段建立索引文件。一个表文件可以建立多个索引文件,但对于打开的表文件,任何时候只有一个索引文件起作用,此索引文件称为主控索引。索引是以索引文件的形式存在的,索引文件是由指向表文件记录的指针构成的。它根据指定的索引关键字表达式建立的。索引文件可以看成索引关键字的值与记录号之间的对照表,关键字可以是一个字段,也可以是几个字段的组合。在建立索引文件时,把表所有记录的索引关键字表达式的值按指定顺序排序,并把每个索引关键字表达式值与该值在表中所对应的记录对应起来,保存在索引文件中。索引文件必须与原表一起使用,查询时根据索引关键字表达式的值先在索引文件中找到某字段所在的记

37、录号,然后再到表里直接定位。这样的查找方式使顺序查找和随机查找都有较高的效率。打开索引文件时,将改变表中记录的逻辑顺序,但并不改变表中记录的物理顺序。索引可以提高查询速度,但是降低了更新速度。,索引文件的类型索引文件可以分为:单索引文件和复合索引文件。1单索引文件只包含一个索引项的索引文件,称为单索引文件,该文件的扩展名是.IDX。2复合索引文件含有多个索引项的索引文件,称为复合索引文件,该文件的扩展名是.CDX。复合索引又分为结构复合索引和非结构复合索引。当Visual FoxPro打开一个表时,便自动查找结构复合索引文件。结构复合索引的特点是:结构复合索引的文件名与数据表文件名相同。该索引

38、文件随表文件同时打开和同时关闭。该索引文件自动更新。非结构复合索引的特点是:非结构复合索引的文件名与数据表文件名不相同。该索引文件必须使用单独的打开命令。该索引文件不自动更新。,4.6.3 索引关键字和索引类型索引关键字:指在建立索引用的表达式可以是单个字段也可以是几个字段组成的表达式。索引可以根据功能分为下列四种类型:(1)主索引主索引是一个永远不允许在指定字段和表达式中出现重复值的索引。它也是在数据库表的永久关联中创建参照完整性时主表所使用的索引。每一个表只能建立一个主索引,只有数据库表才能建立主索引。,(2)候选索引侯选索引也是一个不允许在指定字段和表达式中出现重复值的索引。数据库表和自

39、由表都可以建立候选索引,一个表可以建立多个侯选索引。(3)唯一索引唯一索引中的“唯一”是指索引项的唯一,而不是字段值的唯一。它仅保留第一次出现的索引关键字值。数据库表和自由表都可以建立唯一索引,一个表可以建立多个唯一索引。(4)普通索引普通索引是一个最简单的索引,允许关键字值的重复出现,适合用来进行表中记录的排序和查询,也适合于一对多永久关联中“多”的一边(子表)的索引。数据库表和自由表都可以建立普通索引。一个表可以建立多个普通索引。,用命令建立索引1单索引文件的建立【格式】INDEX ON TO UNIQUE FOR ADDITIVE【功能】对当前表中满足条件的记录,按的值建立一个索引文件,

40、并打开此索引文件,其缺省的文件扩展名为.IDX。【参数描述】:用以指定记录重新排序的字段或表达式。它可以是字段名,也可以是含有当前表中字段的合法表达式。表达式值的数据类型可以是字符型、数值型、日期型、逻辑型。若在表达式中包含有几种类型的字段名,常常需要使用类型转换函数将其转换为相同类型的数据。UNIQUE:建立唯一索引。ADDITIVE:若省略ADDITIVE子句,当为一个表建立新的索引文件时,除结构复合索引文件外,所有其它打开的索引文件都将会被关闭;若选择此选择项,则已打开的索引文件仍然保持打开状态。FOR:指定一个条件,只显示和访问满足表达式的记录,索引文件只为那些满足条件的表达式的记录创

41、建索引关键字。,2复合索引文件的建立复合索引文件是由索引标记组成的,每个复合索引文件可包含多个索引标记,每个索引标记都有标记名,一个索引标记相当于一个单索引文件。【格式】INDEX ON TAG OF FOR ASCENDING|DESCENDING UNIQUECANDIDATEADDITIVE【功能】建立复合索引文件,并打开此索引文件,其缺省的文件扩展名为.CDX。【参数描述】、FOR、ADDITIVE:与上相同。TAG:此选项只对建立复合索引文件时有效,指定建立或追加索引标识的标识名。OF:TAG 参数中不包含可选的OF 子句时,便可以创建结构复合索引文件。如果在TAG 参数后包含可选项

42、OF 子句,则可以创建非结构复合索引文件。UNIQUECANDIDATE:建立唯一索引或候选索引。,菜单方式 打开表文件。选择【显示】|【表设计器】命令,打开表设计器对话框,选择“索引”标签。在索引名中输入索引标识名,在类型的下拉列表框中确定一种索引类型,在表达式中输入索引关键字表达式,在筛选中输入确定参加索引的记录条件,在排序序列下默认的是升序按钮,单击可改变为降序按钮。确定好各项后,选择“确定”,关闭表设计器,同时索引建立完成。同样的方法也可以将以前建立的索引调出,利用表设计器上的“插入”或“删除”按钮进行插入或删除。注意:用表设计器建立的索引都是结构复合索引文件。,4.6.6 使用索引1

43、打开索引文件(1)在打开表时打开索引文件结构复合索引文件在打开表时将自动被打开。【格式】USE INDEX ORDER|TAG OF ASCENDING|DESCENDING【功能】打开指定的表,并且打开由指定的所有索引文件。,(2)在打开表后打开索引文件【格式】SET INDEX TO ORDER|TAG OF ASCENDING|DESCENDING【功能】打开指定的索引文件或关闭索引文件。省略所有选项为关闭当前工作区中除结构复合索引文件外的所有索引文件。【参数描述】:指定要打开的一个或多个索引文件。索引文件列表中可以包含多个单索引和复合索引文件。索引文件列表中,第一个索引文件成为主控索引

44、,它控制记录的显示和访问。,2设置主控索引 如果在打开索引文件时未指定主控索引,打开索引文件之后需要指定主控索引,或者希望改变主控索引,可使用下面的命令。【格式】SET ORDER TO|TAG OF ASCENDING|DESCENDING【功能】在打开的索引文件中指定主控索引。,3索引文件的关闭【格式1】USE【功能】关闭当前工作区中打开的表文件及所有索引文件。【格式2】SET INDEX TO【功能】关闭当前工作区中打开的所有单索引文件和复合索引文件。【格式3】CLOSE INDEXS【功能】关闭当前工作区中打开的所有单索引文件和复合索引文件。4索引的删除【格式】DELETE TAG O

45、F,OF.或:DELETE TAG ALL OF【功能】从指定的索引文件中删除索引项。【说明】OF:指定复合索引文件名,若缺省,则为结构复合索引文件。,5索引定位LOCATE命令用于按条件进行顺序定位,无论索引文件是否打开都可使用。在打开索引文件后,还可以用FIND、SEEK命令进行快速检索。FIND命令【格式】FIND|【功能】在表文件的主控索引中查找关键字值与或相匹配的第一个记录。【说明】必须打开相应的表文件和索引文件,并设置对应的主控索引。查询字符串,字符串可以不用定界符括起来。查询常数,必须使用索引关键字的完整值。由于索引文件中关键字表达式值相同的记录总是排在一起的,可用SKIP、DI

46、SP命令来逐个查询。SEEK命令【格式】SEEK【功能】在表文件的主索引中查找关键字值与值相匹配的第一个记录。【说明】SEEK命令可以查找字符型、数值型、日期型、逻辑型表达式的值。表达式为字符串时,必须用定界符括起来。日期常量也必须用大括号括起来。,4.7 数据完整性,实体完整性与主关键字实体完整性是保证表中记录唯一的特性,即在一个表中不允许有重复记录。在Visual FoxPro中利用主关键字或候选关键字来保证表中记录唯一。在Visual FoxPro中将主关键字称作主索引,将候选关键字称作候选索引。域完整性与约束规则域完整性用来保证表中每个字段的取值情况。表设计器中的类型、宽度和字段有效性

47、规则都是用来保证域完整性的。,参照完整性参照完整性是控制数据一致性,尤其是不同表的主关键字和外部关键字之间关系的规则。参照完整性必须在数据库里完成,而且数据库里的表之间必须建立永久性联系。1永久关系Visual FoxPro表之间的关系分为临时关系和永久关系,具有永久关系的表只能是数据库中的表,这种关系不但在运行时存在,而且是一直保留到表被删除为止。而自由表只能在运行时建立一种临行关系,运行结束后该关系就不存在了。永久关系的主要表现范围:在“查询设计器”和“视图设计器”中,自动作为默认联接条件。作为表单和报表的默认关系,在“数据环境设计器”中显示。用于存储参照完整性信息。为了创建和说明永久关系

48、,通常把数据库中的表分为主表和子表,这种关系通过具有公共字段进行联接来实现。主表必须按关键字建主索引或候选索引,子表一般建立普通索引,然后按鼠标左键从主索引拖向普通索引会产生一条黑线,就是永久性联系。,永久联系如下图:,2设置参照完整性(1)打开“参照完整性生成器”打开“参照完整性生成器”有下列三种方法:在“数据库设计器”中双击两个表之间的关系线,并在“编辑关系”对话框中选择“参照完整性”按钮。在“数据库设计器”中点击鼠标右键,并在随之出现的选择框中选择“编辑参照完整性”选项。选择“数据库”菜单中的“编辑参照完整性”选项。注意在建立参照完整性之前必须首先清理数据库,所谓的清理数据库是物理删除数

49、据库各个表中所有带有删除标记的记录。在菜单“数据库”中有“清理数据库”。清理完数据库后,就可以设置参照完整性。,参照完整性生成器,(2)参照完整性设置三种规则:“更新规则”选项卡指定修改父表中的关键字值时所用的规则。“删除规则”选项卡指定在删除父表中的记录时所用的规则。“插入规则”选项卡指定在子表插入新的记录,或者在子表中更新已存在的记录时所用的规则。规则含义:级联:指定在父表中进行的修改在相关的子表中反映出来。如果您为一个关系选择了“级联”,无论何时修改父表中的记录,相关子表中的记录自动修改。限制:禁止更改父表中的记录,这些记录在子表中有相关的记录。如果您为一个关系选择了“限制”,那么当在子

50、表中有相关的记录时,则在父表中进行修改记录的尝试就会产生一个错误。忽略:允许修改父表中的记录,同时把受影响的子记录保留。,4.8 多表的操作,工作区与多个表1工作区和当前工作区Visual FoxPro 能同时提供32767个工作区。系统默认值为1区。在任意时刻,只有一个工作区是当前工作区,用户只能在当前工作区对打开的当前表进行操作。每一个工作区都可以并且只能打开一个表文件。同一个表文件不允许同时在多个工作区打开,但在其它工作区中被关闭之后,可以在任意一个工作区中被打开。各工作区中打开的表彼此相互独立(指针不受影响)。,2选择当前工作区 每一个工作区用工作区号或别名来标识。(1)工作区号利用数

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号