《VisualFoxPro程序设计》第三章数据库和表.ppt

上传人:小飞机 文档编号:6525880 上传时间:2023-11-09 格式:PPT 页数:95 大小:4.22MB
返回 下载 相关 举报
《VisualFoxPro程序设计》第三章数据库和表.ppt_第1页
第1页 / 共95页
《VisualFoxPro程序设计》第三章数据库和表.ppt_第2页
第2页 / 共95页
《VisualFoxPro程序设计》第三章数据库和表.ppt_第3页
第3页 / 共95页
《VisualFoxPro程序设计》第三章数据库和表.ppt_第4页
第4页 / 共95页
《VisualFoxPro程序设计》第三章数据库和表.ppt_第5页
第5页 / 共95页
点击查看更多>>
资源描述

《《VisualFoxPro程序设计》第三章数据库和表.ppt》由会员分享,可在线阅读,更多相关《《VisualFoxPro程序设计》第三章数据库和表.ppt(95页珍藏版)》请在三一办公上搜索。

1、Visual FoxPro 6.0 程序设计.课件,-1-,第3章 数据库和表,3.1 数据表的建立和修改 3.2 数据表的维护命令 3.3 表的排序和索引 3.4 数据的检索和统计 3.5 多表操作 3.6 数据库的基本操作,提示:单击各个标题前的动画符号“”,链接到相应的章节。,Visual FoxPro 6.0 程序设计.课件,-2-,3.1 数据表的建立和修改,3.1.1 表结构的建立 3.1.2 表的打开与关闭 3.1.3 表结构的显示与修改,Visual FoxPro 6.0 程序设计.课件,-3-,3.1 数据表的建立和修改,数据表是一组相关联的数据按行和列排列的二维表格,简称为

2、表(Table)。表中第一行决定表的结构,表的每列都是一个字段,第一行的每一项是字段名,表中其他行是按照表结构建立的表数据,每行都称为一条记录。见下表所示的学生信息表。,Visual FoxPro 6.0 程序设计.课件,-4-,3.1.1 表结构的建立,1.表结构的设计表结构由字段名、字段类型和字段长度(数值型还需要定义小数位数)构成。(1)字段名字段名即字段的标识或关系的属性名,可由汉字、字母、数字及下划线组成,但首字符必须是汉字或字母;数据库表字段名的总长度不超过128个字符,但自由表字段名长度不能超过10个字符;不能使用VFP的保留字;同一表中字段名不允许重复,字段名取名最好能简要说明

3、该字段的意义。(2)字段类型表中每一个字段都有特定的数据类型;见下表,可以选择下列表中的任意一种数据类型。,Visual FoxPro 6.0 程序设计.课件,-5-,Visual FoxPro 6.0 程序设计.课件,-6-,对于有些由数字构成,但不参与数值计算的数据,可以定义成字符型,如学号、身份证号码等;对于取值只有两种状态的数据可以定义成逻辑型,如是否团员、婚否等。可以定义上述学生信息表的表结构,见下表。,Visual FoxPro 6.0 程序设计.课件,-7-,2.表结构的建立表结构的建立方法常用两种:菜单方式和命令方式。(1)菜单方式,图3-1“文件”菜单,图3-2“新建”对话框

4、,单击“文件”|“新建”命令,如左图,打开“新建”对话框,如右图,Visual FoxPro 6.0 程序设计.课件,-8-,在“新建”对话框中选择文件类型为“表”,然后单击“新建文件”按钮,打开下图所示的“创建”对话框。,在“创建”对话框中,选择好保存路径后,输入要保存的表文件的名称,默认的保存类型为“表/DBF”,扩展名为.dbf,然后单击“保存”按钮,打开如下图所示的“表设计器”对话框。,Visual FoxPro 6.0 程序设计.课件,-9-,在“表设计器”对话框中,选择“字段”选项卡,可以设置字段名、字段宽度等。在“字段名”下方的框内输入字段的名称;在“类型”下方的下拉框中选择该字

5、段的字段类型;在“宽度”下方的框内设置该字段的宽度;如果字段类型是“数值型”或“浮动型”,则还要在“小数位”下方的框中设置小数点后的位数。一个字段定义完后,单击下一行,再定义下一个字段,一直到所有字段都定义完成后,单击“确定”按钮,就完成了表结构的建立。,Visual FoxPro 6.0 程序设计.课件,-10-,在“表设计器”的对话框中,单击“插入”按钮,会在已选定字段前插入一个新字段;单击“删除”按钮,会删除一个已选定字段;当选中某一字段时,该字段定义行左端的小方块上显示上下双向箭头,拖动该上下箭头可以改变字段的顺序。在“表设计器”对话框中,表结构建立好后,单击“确定”按钮,会弹出一个询

6、问现在是否要输入数据记录的对话框,如果单击“是”按钮,将弹出记录的编辑窗口,可以直接输入表中记录的数据值;如果单击“否”按钮,将直接关闭表设计器窗口。,Visual FoxPro 6.0 程序设计.课件,-11-,(2)命令方式建立表结构的命令格式:CREATE 例如,在命令窗口中输入:create student将打开“表设计器”对话框,在该对话框中定义表中的每个字段,单击“确定”按钮完成表结构的建立。,Visual FoxPro 6.0 程序设计.课件,-12-,3.1.2 表的打开与关闭,1.表的打开对表操作要先打开。打开的方法有:菜单方式和命令方式(1)菜单方式单击“文件”|“打开”命

7、令,打开“打开”对话框,如图,其中的文件类型选择“表(*.dbf)”,然后按照路径找到表文件所在位置,选中该文件,单击“确定”按钮。,Visual FoxPro 6.0 程序设计.课件,-13-,(2)命令方式打开表的命令格式:USE 例如,打开学生信息表student,可以在命令窗口中输入相应的命令:use student如果该表文件在当前默认路径下,输入命令并回车后则能直接打开该表;如果该表未存放在当前默认路径下,则在use命令后应输入该表文件所在的完整路径和文件名称。,Visual FoxPro 6.0 程序设计.课件,-14-,2.表的关闭对表文件的操作结束后,一般需要关闭表,一方面将

8、对表的修改保存到磁盘文件中,另一方面也避免对表的无意破坏。关闭表的方法主要有两种:菜单方式和命令方式。(1)菜单方式:单击“文件”|“关闭”命令,即可关闭当前打开的表。(2)命令方式:关闭表的命令格式为:USE在命令窗口中输入USE命令,回车后,当前工作区中打开的表被关闭。也可使用命令:CLOSE ALL来关闭所有工作区中打开的表文件。,Visual FoxPro 6.0 程序设计.课件,-15-,3.1.3 表结构的显示与修改,1.表结构的显示表文件建立以后,随时可以查看表结构。表结构的显示方法主要有两种:菜单方式和命令方式。(1)菜单方式单击“文件”|“打开”命令,打开“打开”对话框,在其

9、中选择要打开的表。单击“显示”|“表设计器”命令,打开“表设计器”对话框,在其中能看到该表的表结构中所有字段的定义。(2)命令方式显示表结构的命令格式如下:LIST|DISPLAY STRUCTURE LIST STRUCTURE和DISPLAY STRUCTURE命令功能相近,都可以显示当前表的表结构,区别在于:使用LIST命令时,当显示的内容超出一屏时会自动滚屏,显示到最后一屏;而使用DISPLAY命令,显示内容满一屏时会自动暂停,按任意键后才继续显示下一屏。,Visual FoxPro 6.0 程序设计.课件,-16-,例如,显示学生信息表student的表结构,可以在命令窗口中输入相应

10、的命令:use student list structure回车后,在主窗口中会显示表的结构,如图。,Visual FoxPro 6.0 程序设计.课件,-17-,2.表结构的修改表结构的修改方法也有菜单方式和命令方式两种。(1)菜单方式单击“文件”|“打开”命令,或者单击常用工具栏中的“打开”按钮,打开“打开”对话框,在对话框中选择要打开的表。单击“显示”|“表设计器”命令,打开“表设计器”对话框。在“表设计器”对话框中,选中要修改的字段,可以随意修改字段名、类型、宽度等项;可以单击“插入”按钮,在选中字段前插入一个新字段;可以单击“删除”按钮,删除当前选中的字段;也可拖动被选中字段左端的带

11、上下双向箭头的按钮来改变字段的顺序。修改后,单击“确定”按钮完成表结构的修改。,Visual FoxPro 6.0 程序设计.课件,-18-,(2)命令方式修改表结构的命令格式:MODIFY STRUCTURE 例如,修改学生信息表的表结构,可以在命令窗口中输入相应的命令:use student modify structure 按回车键后,也会打开“表设计器”的对话框,具体修改操作同菜单方式。注意:在修改表结构时,注意已有数据的类型和宽度,防止表中已有数据的丢失。,Visual FoxPro 6.0 程序设计.课件,-19-,3.2 数据表的维护命令,3.2.1 表记录的浏览 3.2.2 表

12、记录的添加 3.2.3 表记录的删除 3.2.4 表记录的修改,Visual FoxPro 6.0 程序设计.课件,-20-,3.2.1 表记录的浏览,表记录的浏览方法主要有两种:菜单方式和命令方式1.菜单方式(1)单击“文件”|“打开”命令,或者单击常用工具栏中的“打开”按钮,打开“打开”对话框,在对话框中选择要打开的表。(2)单击“显示”|“浏览”命令,打开“浏览”窗口,如图。,Visual FoxPro 6.0 程序设计.课件,-21-,2.命令方式有多个命令可以实现记录的浏览,主要分为两种:在浏览窗口中显示和在工作区中显示。(1)浏览窗口中显示在浏览窗口中显示表记录的命令格式如下:BR

13、OWSEFIELDSFOR其中,FIELDS指定在浏览窗口中显示的字段,如果缺省,默认显示所有字段;FOR指定在浏览窗口中显示满足条件的记录,如果缺省,默认显示所有记录。例如,显示学生信息表student中身高不大于170cm的学生记录,可以在命令窗口中输入下列命令:use student browse for 身高=170命令执行结果如下图所示。,Visual FoxPro 6.0 程序设计.课件,-22-,在“浏览”窗口的最左侧有一个黑色的三角箭头,称为记录指针,记录指针所指的记录称为当前记录。,显示浏览窗口后,“显示”菜单中多了“浏览”、“编辑”等菜单项,单击“显示”|“编辑”命令,可以

14、将“浏览”窗口改为“编辑”窗口。,Visual FoxPro 6.0 程序设计.课件,-23-,(2)工作区中显示其命令格式:LIST|DISPLAY FIELDS FOR|WHILE TO PRINTER|TO FILE OFF其中,LIST为连续显示命令。DISPLAY为分页显示命令。指定操作的记录范围,可选的范围有下列4种:ALL:表示所有记录,若范围缺省,默认为ALL。RECORD n:表示第n条记录;NEXT n:表示从当前记录开始的n条记录;REST:从当前记录到最后一条记录;FIELDS:指定在浏览窗口中显示的字段,如果缺省,默认显示所有字段。FOR:指定在浏览窗口中显示满足条件

15、的记录,如果缺省,默认显示所有记录。TO PRINTER|TO FILE:指定输出结果到打印机或FILE后的文件中。OFF:指定不显示记录号,如果缺省,默认显示记录号。,Visual FoxPro 6.0 程序设计.课件,-24-,例如,要显示学生信息表student中第3条记录的学号、姓名,可以在命令窗口中输入下列命令:use studentlist record 3 学号,姓名命令执行结果如图所示。,Visual FoxPro 6.0 程序设计.课件,-25-,3.2.2 表记录的添加,表记录的添加有三种方式:添加一条空记录、添加若干条记录和将其他表中的记录添加到当前表。记录的添加主要有两

16、种方法:菜单方法和命令方法。1.菜单方式(1)添加一条空记录单击“文件”|“打开”命令,或者单击常用工具栏中的“打开”按钮,打开“打开”对话框,在对话框中选择要打开的表。单击“显示”|“浏览”命令,打开“浏览”窗口。单击“表”|“追加新记录”命令,此时浏览窗口的记录指针将会指向最后一条记录的后面,可以通过光标定位来输入该条新增记录各字段的字段值,如下图所示。,Visual FoxPro 6.0 程序设计.课件,-26-,(2)添加若干条记录 按照上述添加一条新记录的前两步骤,打开表的“浏览”窗口后,单击“显示”|“追加方式”命令,则记录指针指向表中最后一个记录后面,可以向表尾连续添加若干条记录

17、。,Visual FoxPro 6.0 程序设计.课件,-27-,(3)将其他表中的记录添加到当前表,在“追加来源”对话框中,可以在“类型”下拉列表框选择要添加到当前表的记录所在来源文件的文件类型;在“来源于”文本框中,可以直接输入来源文件的文件路径和名称,也可单击其后的“对话”按钮,在打开的“打开”对话框中选择来源文件所在的路径和名称。,按照上述添加一条新记录的前两步骤,打开表的“浏览”窗口后,单击“表”|“追加记录”命令,打开“追加来源”的对话框,如下图所示。,Visual FoxPro 6.0 程序设计.课件,-28-,如果需要从来源文件中选取满足条件的记录或指定字段,则可在选择好来源文

18、件后,在“追加来源”对话框中,单击“选项”按钮,打开如下图所示的“追加来源选项”对话框。,在该对话框中可以单击“字段”按钮,打开“字段选择器”对话框,选择要添加的字段名;也可单击“For”按钮,打开“表达式生成器”对话框,设置要满足的条件。,Visual FoxPro 6.0 程序设计.课件,-29-,2.命令方式添加记录前应先打开要操作的表,然后在命令窗口内输入相应的命令。(1)添加一条空记录添加一条空记录的命令格式:APPEND BLANK(2)添加若干条记录添加若干条记录的命令格式:APPEND,Visual FoxPro 6.0 程序设计.课件,-30-,(3)将其他表中的记录添加到当

19、前表将其他表中的记录添加到当前表的命令格式如下:APPEND FROM FIELDS FOR 例如,要将stu表中性别为男的记录追加到当前表中。可在命令窗口中输入如下命令:use student append from stu for 性别=男用于追加的来源表可以是Visual FoxPro中的表,也可以是Excel工作表,或其他类型的存放数据的文件。,Visual FoxPro 6.0 程序设计.课件,-31-,3.表记录的插入在表中指定位置添加记录,称为记录的插入。插入表记录的命令格式如下:INSERT BLANK BEFORE其中,BLANK表示插入一条空记录,无此参数将出现记录编辑窗口

20、,等待用户输入记录;BEFORE表示在当前记录的前面插入一条空记录,无此参数,则在当前记录的后面插入一条空记录。Visual FoxPro提供这条命令主要是为了兼容早期版本设置,没有相应的菜单操作,且在使用时受到较多约束,因此建议添加记录还是使用前面两种方式。,Visual FoxPro 6.0 程序设计.课件,-32-,3.2.3 表记录的删除,表中不需要的记录可以随时被删除。Visual FoxPro中把删除记录分为逻辑删除和物理删除两种。1逻辑删除逻辑删除并不真正将记录从表中彻底删除掉,而是在要删除记录前面加注一个删除标记。加注删除标记的记录仍能被操作,如显示、修改等。若不想删除时,还可

21、撤消该记录删除标记来恢复。逻辑删除主要有菜单方式和命令方式两种。(1)菜单方式单击“文件”|“打开”命令,或者单击常用工具栏中的“打开”按钮,打开“打开”对话框,在对话框中选择要打开的表。单击“显示”|“浏览”命令,打开“浏览”窗口。,Visual FoxPro 6.0 程序设计.课件,-33-,单击“表”|“删除记录”命令,打开“删除”对话框,如下图所示,在该对话框中可以选择删除的范围、条件,确定后单击“删除”按钮,即完成逻辑删除。,在浏览窗口中,凡是被逻辑删除的记录前面都加上黑色方块的删除标记,如下图所示。,Visual FoxPro 6.0 程序设计.课件,-34-,(2)命令方式逻辑删

22、除的命令格式如下:DELETE FOR 其中用于指定要加删除标记的记录范围,如果命令中有for条件,缺省时默认为所有记录,如果命令中没有for条件,缺省时默认为当前记录;FOR 用于指定对满足条件的记录加删除标记。例如,要逻辑删除学生信息表student中学号为200810280的记录。可在命令窗口中输入以下命令:use student delete for 学号=200810280 list,Visual FoxPro 6.0 程序设计.课件,-35-,显示结果如图3-17所示,在主窗口工作区中,凡是被逻辑删除的记录前面都加上了删除标记“*”.,注意:可以用鼠标直接单击要删除记录前面的删除标

23、记区域来加注删除标记,实现快速逻辑删除记录。,Visual FoxPro 6.0 程序设计.课件,-36-,2恢复删除恢复删除是逻辑删除的逆操作,将逻辑删除记录的删除标记取消掉,恢复成正常记录。恢复删除主要有菜单方式和命令方式两种方法。(1)菜单方式单击“文件”|“打开”命令,打开“打开”对话框,在对话框中选择要打开的表。单击“显示”|“浏览”命令,打开“浏览”窗口。单击“表”|“恢复记录”命令,打开“恢复记录”对话框,如图所示,在该对话框中可以选择恢复记录的范围、条件,确定后单击“恢复记录”按钮,即完成恢复删除操作。此时再浏览表记录,会发现选定记录的删除标记已被撤销。,Visual FoxP

24、ro 6.0 程序设计.课件,-37-,(2)命令方式恢复逻辑删除的命令格式如下:RECALL FOR 其中用于指定要撤销删除标记的记录范围,如果命令中有for条件,缺省时默认为所有记录,如果命令中没有for条件,缺省时默认为当前记录;FOR 用于指定对满足条件的记录撤销删除标记。例如,要恢复学生信息表student中所有逻辑删除的记录。可在命令窗口中输入以下命令:use student recall all命令执行后,再浏览表记录,会发现所有记录的删除标记都已被撤销。注意:可以用鼠标直接单击要恢复记录前面的删除标记来快速恢复逻辑删除。,Visual FoxPro 6.0 程序设计.课件,-3

25、8-,3.物理删除物理删除是将表中所有具有删除标记的记录从表中彻底删除,无法再恢复。恢复删除主要有两种方法:菜单方式和命令方式(1)菜单方式单击“文件”|“打开”命令,打开“打开”对话框,在对话框中选择要打开的表。单击“显示”|“浏览”命令,打开“浏览”窗口。单击“表”|“彻底删除”命令,打开删除确认对话框,确认后,表中所有带删除标记的记录会被从磁盘上彻底删除。(2)命令方式物理删除的命令格式:PACK注意:物理删除所删除的记录对象是已被加注删除标记的逻辑删除记录,因此要实施物理删除,应先实施逻辑删除;被物理删除的记录不可恢复。,Visual FoxPro 6.0 程序设计.课件,-39-,4

26、.直接删除表中所有记录当表中所有记录都不需要时,可以一次性从表中直接删除所有记录,但此时表结构仍存在。直接删除表中所有记录的命令格式:ZAP如要实施该操作,可直接在命令窗口内输入该命令,回车后会弹出确认操作对话框,确认命令执行后,不能再恢复已被删除的记录。它相当于下列两个命令的组合:delete all pack,Visual FoxPro 6.0 程序设计.课件,-40-,3.2.4 表记录的修改,可利用表记录的修改操作来修改表中某条记录或某些记录中相应字段的字段值。表记录的修改主要有两种方式:逐条修改记录内容和成批修改记录内容。1.逐条修改记录内容逐条修改记录内容的操作可在浏览窗口内进行。

27、(1)记录的定位在Visual FoxPro中只能对记录指针所指的当前记录进行操作,因此在修改记录前,应首先定位要修改的记录,将其设为当前操作记录,才能进行修改。在浏览窗口的最左侧有一个黑色的三角箭头,称为记录指针,记录指针所指的记录称为当前记录,每一个打开的表都有一个记录指针,用以指示当前操作的记录。移动记录指针至当前要操作的记录,称为记录的定位。,Visual FoxPro 6.0 程序设计.课件,-41-,记录的定位主要有以下3种方法:直接用鼠标单击要定位的记录即可。单击“表”|“转到记录”命令,打开“转到记录”的子菜单,如图所示,根据要定位记录所在的位置选择相应的命令。,Visual

28、FoxPro 6.0 程序设计.课件,-42-,使用记录的定位命令,该命令主要有以下几种,见表。,在使用定位命令时需要注意以下几点:定位命令经常与函数FOUND()、RECNO()、BOF()、EOF()配合使用来观察定位效果。文件开始是指第一条记录的前面而不是第一条记录;文件结尾是指最后一条记录的后面而不是最后一条记录。,Visual FoxPro 6.0 程序设计.课件,-43-,(2)记录的修改在“浏览”窗口中,可直接编辑修改记录内容。若要修改字符型、数值型、逻辑型、日期型或日期时间型字段中的值,可以把光标移动当前记录的相应字段中编辑修改内容;若要修改备注型或通用型字段中的值,可在浏览窗

29、口中双击该字段或按【CTRL+PgDn】组合键,打开该字段的编辑窗口,再编辑修改该字段的内容。,Visual FoxPro 6.0 程序设计.课件,-44-,2.成批修改记录内容(1)菜单方式单击“文件”|“打开”命令,打开“打开”对话框,在对话框中选择要打开的表。单击“显示”|“浏览”命令,打开“浏览”窗口。单击“表”|“替换字段”命令,打开“替换字段”对话框。,在“替换字段”对话框中,可以在“字段”下拉列表框中选择要修改的字段名;在“替换为”文本框中输入要替换的表达式,或单击文本框右侧的“对话”按钮,在打开的“表达式生成器”对话框中生成所需要替换的表达式;在“替换条件”栏中可以选择替换记录

30、的范围。设置好以后,单击“替换”按钮即可完成成批替换操作。在浏览窗口中可以看到修改后的结果。,Visual FoxPro 6.0 程序设计.课件,-45-,(2)命令方式成批替换记录的命令格式如下:REPLACE WITH ADDITIVE,WITH ADDITIVE FOR 其中各参数的说明如下:WITH:用表达式i的值来替换字段名i的字段值。注意表达式类型和前面的字段类型应该匹配。ADDITIVE:把表达式的值追加到备注字段的原有内容后面,而不是取代,但只用于备注字段。:指定要修改的记录范围,如果命令中有for条件,缺省时默认为所有记录,如果命令中没有for条件,缺省时默认为当前记录。FO

31、R:指定对满足条件的记录作修改操作。,Visual FoxPro 6.0 程序设计.课件,-46-,3.3 表的排序和索引,3.3.1 表的排序 3.3.2 表的索引,Visual FoxPro 6.0 程序设计.课件,-47-,3.3.1 表的排序,排序是将表中记录按某字段值顺序重新排列,排序后产生一个新的表文件,原表文件不会被改变,这个新文件与原来表文件大小、格式完全相同,只是记录的排列顺序不相同。格式:SORT TO ON/A|/D/C,/A|/D/C FOR|WHILE FIELDS 排序时先按字段名1排序,若有两个以上的记录字段名1的值相同,则对这些记录再按字段名2的值排序/A|/D

32、:分别表示升序或降序,缺省时按升序排序;/C:表示不区分字母的大小写;FIELDS指定排序后形成的新表中应包含的字段,缺省时默认包含原表所有字段。:如果命令中有for条件,缺省时默认为所有记录,如果命令中没有for条件,缺省时默认为当前记录。FOR|WHILE:指定对满足条件的记录作排序操作。注意:用于排序的字段称为排序关键字,只能是字符型、数值类型或日期类型,不可选用备注型或通用型字段作为排序关键字。当关键字为字符型时,按字符串的ASCII码值大小排序,汉字字符一般是按照汉字的汉语拼音进行排序。,Visual FoxPro 6.0 程序设计.课件,-48-,例如,对学生信息表student按

33、身高从低到高排序。可在命令窗口输入以下命令:use student&打开学生信息表 sort to sg on 身高/A&排序后产生一个新表sg.dbfuse sg&打开新表sg.dbf browse&在浏览窗口中显示新表的记录命令执行后,结果如图所示。,Visual FoxPro 6.0 程序设计.课件,-49-,3.3.2 表的索引,表文件中的记录在磁盘上的存储顺序称为物理顺序,排序操作后产生的新表文件中将会形成新的物理顺序,虽然索引的目的也是对表中的记录进行排序,但它不会创建一个新的表文件,而是创建一个不能脱离原表单独使用的索引文件。在索引文件中只包含了索引关键字和记录编号两个字段,其中

34、索引关键字值按升序或降序排列,并通过记录号连接到原表相应记录上,记录在索引文件中的顺序称为逻辑顺序。当打开索引文件后,记录的使用顺序是记录的逻辑顺序,从用户的角度看,此时表中记录是按关键字值顺序排列的。索引操作所需的时间和空间都比排序操作要少,且当原表记录更新时,索引文件也会自动更新,因此索引功能在实际中使用较多。,Visual FoxPro 6.0 程序设计.课件,-50-,1.索引的类型VFP支持两种索引文件:单索引文件和复合索引文件。单索引文件是根据一个索引关键字或表达式建立的索引文件,文件扩展名为.idx,单索引文件中只存储了一种记录逻辑顺序。复合索引文件是根据多个索引关键字或表达式生

35、成多种逻辑顺序的索引文件,文件扩展名为.cdx。复合索引文件中允许包含多个索引,每个索引文件都有一个索引标识,代表一种记录逻辑顺序。在VFP中主要有4种类型的索引:(1)主索引建立主索引的关键字段可以看作是主关键字,主关键字应具有惟一性,即组成索引的字段在表中不允许有两条或两条以上的记录具有相同的字段值,例例如,在学生信息表中就不能根据姓名来建立主索引,因为可能有两个学生的姓名相同。主索引仅适用数据库表,每个表文件只能有一个主索引。,Visual FoxPro 6.0 程序设计.课件,-51-,(2)候选索引建立候选索引的关键字段可以看作是候选关键字,候选索引和主索引一样,也要求关键字值具有惟

36、一性。候选索引可用于数据库表和自由表,每个表文件可以有多个候选索引。(3)惟一索引惟一索引允许建立索引的字段有相同的值,但仅对首次出现该值的记录进行索引,即对于关键字值相同的记录,只列入其中的第一个记录。惟一索引可用于数据库表和自由表,每个表文件可以有多个惟一索引。(4)普通索引普通索引允许建立索引的字段有相同的值,并且将具有相同关键字值的各条记录按照出现的顺序全部进行索引。普通索引可用于数据库表和自由表,每个表文件可以有多个普通索引。,Visual FoxPro 6.0 程序设计.课件,-52-,2.索引的建立索引的建立方法主要菜单方式和命令方式有两种。(1)菜单方式使用菜单方式建立索引,主

37、要是在“表设计器”对话框中的“字段”选项卡或“索引”选项卡中建立。单击“文件”|“打开”命令,打开“打开”对话框,在对话框中选择要打开的表。单击“显示”|“表设计器”命令,打开“表设计器”对话框,在“表设计器”对话框中的“字段”选项卡和“索引”选项卡均可建立索引。,在“字段”选项卡中,选择要建立索引的关键字段,单击该字段“索引”列的下拉箭头,在下拉列表框中选择排序的次序,如图。,Visual FoxPro 6.0 程序设计.课件,-53-,注意:如果选定了升序或降序,则默认的在对应的字段上建立一个普通索引,索引名与字段名同名,索引表达式就是对应的字段。在“索引”选项卡中,可以新建索引,也可以查

38、看或修改已有的索引。如图所示。,索引设置好后,单击“确定”按钮,会弹出一个对话框,询问是否永久性地更改表结构,单击“是”按钮即可。,Visual FoxPro 6.0 程序设计.课件,-54-,(2)命令方式建立索引的命令格式如下:INDEX ON TO TAG OF FOR ASCENDING|DESCENDING UNIQUE|CANDIDATE ADDITIVE其中,索引关键字或表达式:指定建立索引文件的关键字或关键字表达式。TO 用于建立扩展名为.idx的单索引文件。TAG OF 用于建立扩展名为.cdx的复合索引文件。若无OF,则生成结构复合索引文件,反之则生成非结构复合索引文件。F

39、OR 指定对满足条件的记录建立索引。ASCENDING|DESCENDING 指定排序方式,ASCENDING表示按升序建立索引,DESCENDING表示按降序建立索引。缺省时,默认按升序建立索引。单索引文件不能选用DESCENDING选项。UNIQUE|CANDIDATE:指定索引类型,UNIQUE表示惟一索引,CANDIDATE表示候选索引,缺省时,默认为普通索引。ADDITIVE:表示保留原先打开的索引文件,缺省时,默认关闭原先打开的所有索引文件,新建立的成为当前索引。,Visual FoxPro 6.0 程序设计.课件,-55-,例如,对学生信息表student按出生日期降序建立结构复

40、合索引文件。则在命令窗口中可以输入以下命令:use student&打开学生信息表 index on 出生日期 desc tag 出生日期&按出生日期降序建立索引 browse&在浏览窗口显示命令执行后,可以浏览窗口里看到索引的结果,如图所示。,Visual FoxPro 6.0 程序设计.课件,-56-,3.索引文件的打开打开索引文件前先打开表文件,与表名相同的结构复合索引在打开表时能够自动打开;对于单索引和非结构复合索引,须在使用之前打开索引。索引文件只有打开后才能起到索引作用。索引文件的打开方法主要有菜单方式和命令方式两种。(1)菜单方式单击“文件”|“打开”命令,或者单击常用工具栏中的

41、“打开”按钮,打开“打开”对话框。,选择文件类型“索引(*.idx;*.cdx)”,如图所示,然后按照路径找到索引文件所在位置,选中该索引文件,单击“确定”按钮。,Visual FoxPro 6.0 程序设计.课件,-57-,(2)命令方式打开索引文件的命令格式如下:SET INDEX TO ADDITIVE其中,“索引文件名列表”指定要打开的索引文件,可以同时打开多个索引文件,其中第一个索引文件将成为主控索引。如果主控索引文件是单索引文件,则表处理的记录顺序按其索引顺序进行;如果主控索引文件是复合索引文件,则默认索引项是它在创建时的第一个索引项,如果要使用其他索引项,还须具体指定。ADDIT

42、IVE表示保留原先打开的索引文件。缺省时,默认除结构复合索引文件外,其它打开的索引文件都将被关闭。,Visual FoxPro 6.0 程序设计.课件,-58-,4.设置主控索引尽管结构复合索引在打开表时自动打开,或者打开某个非结构复合索引文件作为主控索引,但在使用某个特定索引项进行查询或需要按某个特定索引项的顺序显示记录时,必须指定当前索引项。设置主控索引的方法主要有菜单方式和命令方式两种。(1)菜单方式单击“文件”|“打开”命令,或者单击常用工具栏中的“打开”按钮,打开“打开”对话框,在对话框中选择要打开的表。单击“显示”|“浏览”命令,打开“浏览”窗口。单击“表”|“属性”命令,打开如下

43、图所示的“工作区属性”对话框。,Visual FoxPro 6.0 程序设计.课件,-59-,在对话框中,可以通过“索引顺序”下方的下拉列表框来设置当前的主控索引。单击“确定”按钮后,在“浏览”窗口中的记录将按照索引指定的顺序排列。,Visual FoxPro 6.0 程序设计.课件,-60-,(2)命令方式设置主控索引的命令格式如下:SET ORDER TO|TAG 其中各参数的说明如下:数值表达式:指已打开索引的序号,将该序号索引设置为主控索引。系统先为各单索引文件编号,所以单索引文件总是排在前面。单索引文件名:将指定的单索引文件设置为主控索引文件。TAG:将索引标识符所代表的索引项设置为

44、主控索引。,Visual FoxPro 6.0 程序设计.课件,-61-,5.索引文件的关闭关闭表时,则该表所对应的索引文件都会被关闭。若不关闭表,单独关闭索引文件的命令有如下两种:SET INDEX TO CLOSE INDEXS6.索引的删除索引文件的删除方法主要有菜单方式和命令方式两种。(1)菜单方式在“表设计器”对话框的“索引”选项卡中,选中要删除的索引,单击“删除”按钮即可删除。(2)命令方式删除索引的命令格式如下:DELETE TAG ALL|,其中,ALL表示删除索引文件中所有索引,当该索引文件的所有索引项都被删除,则该索引文件也已删除;表示删除索引文件中指定索引项。,Visua

45、l FoxPro 6.0 程序设计.课件,-62-,3.4 数据的检索和统计,3.4.1 数据的检索 3.4.2 数据的统计,Visual FoxPro 6.0 程序设计.课件,-63-,3.4.1 数据的检索,数据的检索就是按照指定条件在表中查找满足条件的记录数据。有两类检索命令:顺序检索和索引检索。1.顺序检索命令格式:LOCATE FOR 其中,FOR 表示所需满足的条件;指定查找的记录范围,缺省时,默认为所有记录。找到第一条满足条件的记录后,记录指针就指向该记录,否则,记录指针就指向查找范围的末尾或文件结束处。LOCATE命令只能查找到当前表中满足条件的第一条记录,若继续往下查找满足条

46、件的记录须用CONTINUE命令。CONTINUE命令须在LOCATE命令之后使用,否则出错。例如,在表student中查找姓“王”的学生记录:use student locate for姓名=王 disp continue disp,Visual FoxPro 6.0 程序设计.课件,-64-,2.索引检索但在打开索引文件后,还可以使用FIND和SEEK两条命令来进行快速检索。(1)FIND命令格式:FIND|该命令用于在表的主控索引中查找关键字值与或相匹配的第一条记录,若查找到,则记录指针指向第一条满足条件的记录,否则指向文件尾,在主窗口的状态条中显示“没有找到”。在使用FIND命令时需要

47、注意以下几点:FIND命令只能查找字符串或数值,而且表必须已按相应字段建立了主控索引。查找的字符串一般可以不用定界符括起来(,),但前后有空格的,应该要括起来。若要检索字符型内存变量,必须使用宏替换&函数。本命令只能查找到当前表中满足条件的第一条记录,若要继续查找其他符合条件的记录,可以使用SKIP命令。,Visual FoxPro 6.0 程序设计.课件,-65-,(2)SEEK命令格式:SEEK 该命令用于在表的主控索引中查找关键字值与相匹配的第一条记录,若查找到,则记录指针指向第一条满足条件的记录,否则指向文件尾,在主窗口的状态条中显示“没有找到”。在使用SEEK命令时需要注意以下几点:

48、SEEK命令可以查找字符型、数值类型、日期类型和逻辑型,但表必须已按相应字段建立了主控索引,而且SEEK命令中的表达式的类型必须与建立索引的索引表达式的类型相匹配。查找的字符串须用定界符括起来;日期型须用花括号括起来,但内存变量可以直接查找,不必使用宏替换函数。该命令只能查找到当前表中满足条件的第一条记录,若要继续查找其他符合条件的记录,可以使用SKIP命令。,Visual FoxPro 6.0 程序设计.课件,-66-,例如,在学生信息表student中查找姓“王”的学生记录,可在命令窗口中输入以下命令:use student index on 姓名tag 姓名&按姓名升序建立索引 set

49、order to tag 姓名&设置姓名索引项为主控索引 seek 王&查找姓“王”的记录 disp&在主控窗口中显示该条记录 skip&查找下一条符合条件的记录disp,Visual FoxPro 6.0 程序设计.课件,-67-,3.4.2 数据的统计,1.计数命令该命令用于计算指定范围内满足条件的记录数,其格式如下:COUNT FOR|WHILE TO:指定要计算的记录范围,缺省时,默认为所有记录。FOR|WHILE:指定对满足条件的记录计数。TO:将记录数保存到中,便于以后引用。缺省时,直接将计数结果显示在主窗口的状态条中。例如,统计学生信息表student中性别为男的学生数,相应的命

50、令序列如下:use studentcount for 性别=男命令执行后在主窗口的状态栏中能看到执行结果。2.求和命令 SUM FOR|WHILE TO 该命令用于对中各个字段表达式分别求和。,Visual FoxPro 6.0 程序设计.课件,-68-,3.求平均值命令 AVERAGE FOR|WHILE TO 该命令用于对中各个字段表达式分别求平均值。:指定要参加求平均值的记录范围,缺省时,默认为所有记录。FOR|WHILE:指定对满足条件的记录求平均值。TO:将求平均值的结果保存到中的相对内存变量中,便于以后引用。例如,统计学生信息表student中所有学生的平均身高:use stude

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

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


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号