《第五章数据库与表.ppt》由会员分享,可在线阅读,更多相关《第五章数据库与表.ppt(96页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第第5章章 数据库与表数据库与表5.15.1数据库概述与设计数据库概述与设计数据库概述与设计数据库概述与设计 一、数据库概述一、数据库概述 在在Visual FoxPro中,数据库是中,数据库是一个逻辑上的概念和手段,通过一一个逻辑上的概念和手段,通过一组系统文件将相互联系的数据库表组系统文件将相互联系的数据库表及其相关的数据库对象进行统一组及其相关的数据库对象进行统一组织和管理。织和管理。5.15.1数据库概述与设计数据库概述与设计数据库概述与设计数据库概述与设计 二、数据库设计二、数据库设计 在建立在建立Visual FoxPro数据库时,数据库时,数据库是以扩展名为数据库是以扩展名为.d
2、bc的文件存在的文件存在磁盘上的,数据库备注文件扩展名为磁盘上的,数据库备注文件扩展名为.dct和数据库索引文件扩展名为和数据库索引文件扩展名为.dcx的。的。Visual FoxPro中的数据库不能存中的数据库不能存储数据,但它可以管理数据与数据之储数据,但它可以管理数据与数据之间的联系。间的联系。5.25.2数据库基本操作数据库基本操作数据库基本操作数据库基本操作 一、建立数据库一、建立数据库命令方法命令方法 格式:格式:CREATE DATABASE|?菜单方式菜单方式利用项目管理器建立数据库利用项目管理器建立数据库5.25.2数据库基本操作数据库基本操作数据库基本操作数据库基本操作 一
3、、表的类型一、表的类型在在Visual FoxPro中,表是收集和存中,表是收集和存储数据的基本单元,表是扩展名为储数据的基本单元,表是扩展名为.DBF,如果有备注或通用型字段则还,如果有备注或通用型字段则还会有一个对应扩展名为会有一个对应扩展名为.FPT的文件。的文件。表分为两类:一类为自由表,另一类表分为两类:一类为自由表,另一类为数据库表为数据库表 5.35.3表概述与建立过程表概述与建立过程一个表由表结构和表记录两部分组成一个表由表结构和表记录两部分组成 表名表名表名表名表结构表结构表结构表结构表内容表内容表内容表内容 5.35.3表概述与建立过程表概述与建立过程5.35.3表概述与建
4、立过程表概述与建立过程二、创建表结构 如果建表时数据库是打开的,则建立如果建表时数据库是打开的,则建立的表为当前数据库表,否则,建立自的表为当前数据库表,否则,建立自由表。无论建立那种表,其方法都相由表。无论建立那种表,其方法都相同。同。建立表结构的方法有很多,在这里主要讲述三种方法:命令方式命令方式格式格式:CREATE|?说明说明:在建立数据库表时,要先打开数据库。在建立数据库表时,要先打开数据库。菜单方式菜单方式项目管理器方式项目管理器方式 5.35.3表概述与建立过程表概述与建立过程表设计器介绍 5.35.3表概述与建立过程表概述与建立过程表设计器介绍 表设计器对话框中包含表设计器对话
5、框中包含“字段字段”、“索索引引”、“表表”三个选项卡。三个选项卡。1“字段字段”选项卡选项卡标题:若表结构中字段名用的是英文,则可以在标题中输入汉字,这样显示该字段值时就比较直观了。没有设置标题,则将表结构中的字段名作为字段的标题。字段的显示属性5.35.3表概述与建立过程表概述与建立过程格式:控制字段在浏览窗口等显示时的样式。5.35.3表概述与建立过程表概述与建立过程输入掩码:控制输入该字段的数据的格式。添加寝室字段,显示格添加寝室字段,显示格添加寝室字段,显示格添加寝室字段,显示格式为:楼层式为:楼层式为:楼层式为:楼层房号房号房号房号5.35.3表概述与建立过程表概述与建立过程字段有
6、效性字段有效性 规则:限制该字段的数据的有效范围。在规则:限制该字段的数据的有效范围。在规则中输入:性别规则中输入:性别=男男.OR.性别性别=女女。规则是一个规则是一个逻辑型逻辑型表达式。表达式。信息:当向设置了规则的字段输入不符合信息:当向设置了规则的字段输入不符合规则的数据时,就会将所设置的信息显示规则的数据时,就会将所设置的信息显示出,信息是出,信息是字符型字符型常量,如常量,如“性别只能是性别只能是男或女!男或女!”。默认值:当往表中添加记录时,系默认值:当往表中添加记录时,系 统向该字段预置的值。在统向该字段预置的值。在“性别性别”字字 段中输入默认值为段中输入默认值为“男男”。5
7、.35.3表概述与建立过程表概述与建立过程例例5.1 建立一个文件名为建立一个文件名为“学生学生”表的表结表的表结构构。小数位 设置高考成绩字段的有效性规设置高考成绩字段的有效性规则为:高考成绩则为:高考成绩=0;信息为:;信息为:“高考成绩必须大于等于零高考成绩必须大于等于零”;默;默认认值为值为.null.;并且允许用;并且允许用.null.。5.35.3表概述与建立过程表概述与建立过程三、录入表数据三、录入表数据1 1立即追加数据立即追加数据立即追加数据立即追加数据如果刚建好表结构时,在系统提示。如果刚建好表结构时,在系统提示。如果刚建好表结构时,在系统提示。如果刚建好表结构时,在系统提
8、示。2 2直接追加数据直接追加数据直接追加数据直接追加数据分为命令方式和菜单方式两种方法。分为命令方式和菜单方式两种方法。分为命令方式和菜单方式两种方法。分为命令方式和菜单方式两种方法。命令方式命令方式命令方式命令方式【格式格式格式格式】APPEND BLANKAPPEND BLANK【功能功能功能功能】在当前已打开表的末尾追加一条或多条记录。在当前已打开表的末尾追加一条或多条记录。在当前已打开表的末尾追加一条或多条记录。在当前已打开表的末尾追加一条或多条记录。【说明说明说明说明】BLANKBLANK:表示在表末尾追加一条空记录,并自动:表示在表末尾追加一条空记录,并自动:表示在表末尾追加一条
9、空记录,并自动:表示在表末尾追加一条空记录,并自动返回命令窗口,此时系统并不弹出编辑窗口。返回命令窗口,此时系统并不弹出编辑窗口。返回命令窗口,此时系统并不弹出编辑窗口。返回命令窗口,此时系统并不弹出编辑窗口。5.35.3表概述与建立过程表概述与建立过程菜单方式菜单方式(1)首先打开表学生)首先打开表学生.DBF。(2)选择选择【显示显示】|【追加方式追加方式】命令,可以命令,可以追加多条记录。追加多条记录。选择选择【显示显示】|【浏览浏览】命令,然后再命令,然后再选择选择【表表】|【追加新记录追加新记录】命令,用户可命令,用户可以追加一条记录。以追加一条记录。5.35.3表概述与建立过程表概
10、述与建立过程四、表的删除四、表的删除1删除自由表删除自由表【格式格式】DELETE FILE 表文件名表文件名.DBF【功能功能】将指定的表文件从磁盘上删除。将指定的表文件从磁盘上删除。【说明说明】表文件名表文件名.DBF:指定要删除表:指定要删除表的名称,若不指定文件名,系统会弹出的名称,若不指定文件名,系统会弹出“删除删除”对话框,选择要删除的表文件。对话框,选择要删除的表文件。要删除的表文件必须处于关闭状态。要删除的表文件必须处于关闭状态。5.35.3表概述与建立过程表概述与建立过程2删除数据库表删除数据库表 先将表从数据库中移去,然后再用删除。先将表从数据库中移去,然后再用删除。移去数
11、据库表的命令是:移去数据库表的命令是:【格式格式】REMOVE TABLE REMOVE TABLE 表文件名表文件名表文件名表文件名|?DELETERECYCLEDELETERECYCLE【功能功能】从当前数据库中移去一个表。从当前数据库中移去一个表。从当前数据库中移去一个表。从当前数据库中移去一个表。【说明说明】DELETEDELETE:在移去数据库表的同时,从磁盘上删除。:在移去数据库表的同时,从磁盘上删除。:在移去数据库表的同时,从磁盘上删除。:在移去数据库表的同时,从磁盘上删除。RECYCLERECYCLE:在移去数据库表的同时,放入回收站中。:在移去数据库表的同时,放入回收站中。:
12、在移去数据库表的同时,放入回收站中。:在移去数据库表的同时,放入回收站中。3利用项目管理器利用项目管理器 在项目管理器中选中需要删除的表,在项目管理器中选中需要删除的表,选择选择“移去移去”按钮。按钮。在在“选择选择”对话框中,若选择对话框中,若选择“移去移去”按钮,则将表文件移出项目文件,若按钮,则将表文件移出项目文件,若选择选择“删除删除”按钮,则将表文件从磁盘按钮,则将表文件从磁盘上删除。上删除。5.35.3表概述与建立过程表概述与建立过程一、一、表结构的显示表结构的显示【格式格式】LIST|DISPLAY STRUCTURE【功能功能】对打开的表以列表或分屏的方式显示其结构。5.45.
13、4表结构的基本操作表结构的基本操作二、二、表结构的修改表结构的修改1命令方式命令方式【格式格式】MODIFY STRUCTURE【功能功能】打开当前表的设计器。打开当前表的设计器。5.45.4表结构的基本操作表结构的基本操作2菜单方式菜单方式 选择选择【文件文件】|【打开打开】命令,打开表文命令,打开表文件。件。选择选择【显示显示】|【表设计器表设计器】命令,打开命令,打开表设计器。表设计器。之后操作同命令方式。之后操作同命令方式。3利用项目管理器利用项目管理器5.45.4表结构的基本操作表结构的基本操作一、打开表一、打开表一、打开表一、打开表1 1命令方式命令方式命令方式命令方式【格式格式格
14、式格式】USE USE?【功能功能功能功能】打开指定磁盘的指定路径下的表文件。打开指定磁盘的指定路径下的表文件。打开指定磁盘的指定路径下的表文件。打开指定磁盘的指定路径下的表文件。【说明说明说明说明】和和和和 :指定表文件所在的驱动器及路径,:指定表文件所在的驱动器及路径,:指定表文件所在的驱动器及路径,:指定表文件所在的驱动器及路径,若省略盘符和路径参数,则打开当前盘、当前路径下的表若省略盘符和路径参数,则打开当前盘、当前路径下的表若省略盘符和路径参数,则打开当前盘、当前路径下的表若省略盘符和路径参数,则打开当前盘、当前路径下的表文件。文件。文件。文件。2 2菜单方式菜单方式菜单方式菜单方式
15、单击单击单击单击“文件文件文件文件”菜单,选择菜单,选择菜单,选择菜单,选择“打开打开打开打开”命令命令命令命令5.55.5表的基本操作表的基本操作 二、关闭表二、关闭表1打开另一个表文件打开另一个表文件 2使用不带任何选项的使用不带任何选项的USE命令命令【格式格式】USE【功能功能】关闭当前已打开的表文件。关闭当前已打开的表文件。3使用使用CLEAR命令命令【格式格式】CLEAR ALL【功能功能】关闭所有工作区中已打开的表文关闭所有工作区中已打开的表文件、索引文件、格式文件及备注文件等,件、索引文件、格式文件及备注文件等,同时释放所有的内存变量,并选择工作区同时释放所有的内存变量,并选择
16、工作区1为当前工作区。为当前工作区。5.55.5表的基本操作表的基本操作 二、关闭表二、关闭表4使用使用CLOSE命令命令【格式格式】CLOSE ALL【功能功能】关闭各种类型文件,并选择工作关闭各种类型文件,并选择工作区区1为当前工作区。为当前工作区。5退出退出Visual FoxPro系统系统【格式格式】QUIT【功能功能】退出退出Visual FoxPro系统,并关闭系统,并关闭所有打开的文件,返回操作系统。所有打开的文件,返回操作系统。5.55.5表的基本操作表的基本操作 三、显示表记录三、显示表记录1.命令方式。命令方式。【格式格式】LIST|DISPLAY FIELDS LIST|
17、DISPLAY FIELDS FOR FOR WHILE WHILE OFFOFF【功能功能】显示将当前表文件的记录。显示将当前表文件的记录。显示将当前表文件的记录。显示将当前表文件的记录。【说明说明】DISPLAYDISPLAY命令与命令与命令与命令与LISTLIST命令的功能相似,如命令的功能相似,如命令的功能相似,如命令的功能相似,如果同时缺省果同时缺省果同时缺省果同时缺省 和和和和 子句,子句,子句,子句,DISPLAYDISPLAY命命命命令只显示当前的一条记录,而令只显示当前的一条记录,而令只显示当前的一条记录,而令只显示当前的一条记录,而LISTLIST命令则是取默命令则是取默命
18、令则是取默命令则是取默认值认值认值认值ALLALL而显示全部记录。而显示全部记录。而显示全部记录。而显示全部记录。5.55.5表的基本操作表的基本操作 FIELDS FIELDS :用来指定显示的字段。:用来指定显示的字段。:用来指定显示的字段。:用来指定显示的字段。:用来指定显示哪些记录。:用来指定显示哪些记录。:用来指定显示哪些记录。:用来指定显示哪些记录。ALLALL:所有记录。:所有记录。:所有记录。:所有记录。NEXT NNEXT N:从当前记录开始,后面的:从当前记录开始,后面的:从当前记录开始,后面的:从当前记录开始,后面的N N条记录条记录条记录条记录 (包括当前记录)(包括当
19、前记录)(包括当前记录)(包括当前记录)RECORD NRECORD N:第:第:第:第N N条记录。条记录。条记录。条记录。RESTREST:当前记录后的全部记录(包括当前记:当前记录后的全部记录(包括当前记:当前记录后的全部记录(包括当前记:当前记录后的全部记录(包括当前记录)。录)。录)。录)。FORFOR:指定对满足条件的记录进行:指定对满足条件的记录进行:指定对满足条件的记录进行:指定对满足条件的记录进行操作。操作。操作。操作。WHILEWHILE:也是指定对满足条件的记:也是指定对满足条件的记:也是指定对满足条件的记:也是指定对满足条件的记录进行操作,但是,当第一次遇到不满足条件的
20、录进行操作,但是,当第一次遇到不满足条件的录进行操作,但是,当第一次遇到不满足条件的录进行操作,但是,当第一次遇到不满足条件的记录时,停止继续往后搜索。记录时,停止继续往后搜索。记录时,停止继续往后搜索。记录时,停止继续往后搜索。WHILEWHILE 若与若与若与若与FORFOR 同同同同时使用,则时使用,则时使用,则时使用,则WHILEWHILE项优先;项优先;项优先;项优先;OFFOFF:表示不显示记录号。:表示不显示记录号。:表示不显示记录号。:表示不显示记录号。listlist for 性别性别=女女list for 性别性别=女女 and 党员党员=.t.go toplist nex
21、t 3 off list rest fields 学号学号,姓名姓名,性别性别5.55.5表的基本操作表的基本操作 2。浏览窗口显示记录。浏览窗口显示记录。【命令命令】BROWSE FIELDS FOR【菜单菜单】打开表打开表【显示显示】|【浏览浏览】命令,命令,这时还可以选择这时还可以选择【显示显示】|【浏览浏览】或或【编编辑辑】来改变浏览窗口显示方式。来改变浏览窗口显示方式。在项目管理器中选定表,单击在项目管理器中选定表,单击“浏览浏览”按按钮。钮。5.55.5表的基本操作表的基本操作 四、记录指针四、记录指针 Visual FoxPro为当前表文件设置为当前表文件设置了一个记录指针,指针
22、所指向的记录称了一个记录指针,指针所指向的记录称为当前记录。一张表刚打开时,记录指为当前记录。一张表刚打开时,记录指针自动指向第针自动指向第1条记录。记录指针定位条记录。记录指针定位有绝对定位、相对定位和条件定位三种。有绝对定位、相对定位和条件定位三种。5.55.5表的基本操作表的基本操作 1.1.绝对定位绝对定位绝对定位绝对定位【命令命令命令命令】GO|GOTO GO|GOTO TOPBOTTOM【功能功能功能功能】将记录指针绝对定位到将记录指针绝对定位到将记录指针绝对定位到将记录指针绝对定位到 指定的记录指定的记录指定的记录指定的记录上;上;上;上;TOPTOP是表头,当不使用索引时是记录
23、号为是表头,当不使用索引时是记录号为是表头,当不使用索引时是记录号为是表头,当不使用索引时是记录号为1 1的记的记的记的记录,使用索引时是排在最前面的索引对应的记录。录,使用索引时是排在最前面的索引对应的记录。录,使用索引时是排在最前面的索引对应的记录。录,使用索引时是排在最前面的索引对应的记录。BOTTOMBOTTOM是表尾,当不使用索引时是记录号最大是表尾,当不使用索引时是记录号最大是表尾,当不使用索引时是记录号最大是表尾,当不使用索引时是记录号最大的那条记录,使用索引时是排在最后面的索引对的那条记录,使用索引时是排在最后面的索引对的那条记录,使用索引时是排在最后面的索引对的那条记录,使用
24、索引时是排在最后面的索引对应的记录。应的记录。应的记录。应的记录。5.55.5表的基本操作表的基本操作 例:例:绝对定位命令的用法,学生表共十条记录。绝对定位命令的用法,学生表共十条记录。USE 学生学生&指针指向第一条记录指针指向第一条记录GOTO 2&指针指向第二条记录指针指向第二条记录GO 3&指针指向第三条记录指针指向第三条记录?RECNO()&显示当前记录的记录号:显示当前记录的记录号:3 GO BOTTOM&指针指向最后一条记录指针指向最后一条记录?RECNO()&显示当前记录的记录号:显示当前记录的记录号:105.55.5表的基本操作表的基本操作 2.相对定位相对定位【命令命令】
25、SKIP【功能功能】记录指针从当前记录向前(或向后)记录指针从当前记录向前(或向后)移动若干个记录。移动若干个记录。【说明说明】:表示移动的记录个数。:表示移动的记录个数。若数值表达式的值为负值,表示向前移动若数值表达式的值为负值,表示向前移动记录;否则,表示向后移动记录。如果缺记录;否则,表示向后移动记录。如果缺省此项,则表示向后移动省此项,则表示向后移动1个记录。个记录。5.55.5表的基本操作表的基本操作 USE USE 学生学生学生学生 GOTO 2GOTO 2 GO 3 GO 3?recnorecno()()SKIP 4 SKIP 4?recnorecno()()SKIP-4?SKI
26、P-4?recnorecno()()5.55.5表的基本操作表的基本操作 3.3.条件定位条件定位条件定位条件定位【命令命令命令命令】LOCATE FOR LOCATE FOR 【功能功能功能功能】将记录指针定位在满足条件的第一条记录上,将记录指针定位在满足条件的第一条记录上,将记录指针定位在满足条件的第一条记录上,将记录指针定位在满足条件的第一条记录上,如果没有满足条件的记录则指针指向文件结束位如果没有满足条件的记录则指针指向文件结束位如果没有满足条件的记录则指针指向文件结束位如果没有满足条件的记录则指针指向文件结束位置。置。置。置。【说明说明说明说明】要使指针指向下一条满足条件的记录,用要
27、使指针指向下一条满足条件的记录,用要使指针指向下一条满足条件的记录,用要使指针指向下一条满足条件的记录,用LOCATE FORLOCATE FOR与与与与CONTINUECONTINUE配对使用。配对使用。配对使用。配对使用。USE USE 学生学生学生学生 LOCATE FOR LOCATE FOR 性别性别性别性别=女女 DISPDISP CONTINU CONTINU DISP DISP五修改记录五修改记录1.编辑修改编辑修改【格式格式】EDIT|CHANGEFIELDS FOR WHILE【功能功能】编辑修改当前打开的表文件的记录。编辑修改当前打开的表文件的记录。【说明说明】FIELD
28、S:若选择此选:若选择此选项,则只列出字段名表中的字段;若未选项,则只列出字段名表中的字段;若未选择此选项,将显示表中的所有字段。择此选项,将显示表中的所有字段。:默认范围为全部记录。:默认范围为全部记录。5.55.5表的基本操作表的基本操作 例:例:修改学生修改学生.DBF中,中,“刘英刘英”同学的学同学的学号、姓名和性别。号、姓名和性别。USE 学生学生EDIT FIELDS 学号学号,姓名姓名,性别性别 FOR 姓名姓名=“刘英刘英”5.55.5表的基本操作表的基本操作 浏览修改浏览修改浏览修改有命令和菜单两种方式:浏览修改有命令和菜单两种方式:【命令命令】BROWSE FIELDS F
29、OR 【菜单菜单】打开表打开表选择选择【显示显示】|【浏览浏览】命令命令5.55.5表的基本操作表的基本操作 3.3.替换修改替换修改替换修改替换修改【命令命令命令命令】REPLACE REPLACE WITH WITH 1 ADDITIVE,ADDITIVE,WITH WITH 2 ADDITIVE.ADDITIVE.FOR FOR 1 WHILE WHILE 2【功能功能功能功能】用指定表达式的值替换当前表中满足条件记录的用指定表达式的值替换当前表中满足条件记录的用指定表达式的值替换当前表中满足条件记录的用指定表达式的值替换当前表中满足条件记录的指定字段的值。指定字段的值。指定字段的值。指
30、定字段的值。【说明说明说明说明】该命令适合对当前表进行成批地、有规律地修该命令适合对当前表进行成批地、有规律地修该命令适合对当前表进行成批地、有规律地修该命令适合对当前表进行成批地、有规律地修改。改。改。改。缺省范围、条件时,仅替换当前记录。缺省范围、条件时,仅替换当前记录。缺省范围、条件时,仅替换当前记录。缺省范围、条件时,仅替换当前记录。该命令回车后,数据修改自动完成。适用于程序设该命令回车后,数据修改自动完成。适用于程序设该命令回车后,数据修改自动完成。适用于程序设该命令回车后,数据修改自动完成。适用于程序设计。计。计。计。ADDITIVEADDITIVE只对备注型字段修改有效。表示将表
31、达式只对备注型字段修改有效。表示将表达式只对备注型字段修改有效。表示将表达式只对备注型字段修改有效。表示将表达式值添加到字段的原有内容后面,否则取代原有内容。值添加到字段的原有内容后面,否则取代原有内容。值添加到字段的原有内容后面,否则取代原有内容。值添加到字段的原有内容后面,否则取代原有内容。表达式的类型必须与字段类型一致。表达式的类型必须与字段类型一致。表达式的类型必须与字段类型一致。表达式的类型必须与字段类型一致。表达式的值不能超出字段宽度,否则,数据无效。表达式的值不能超出字段宽度,否则,数据无效。表达式的值不能超出字段宽度,否则,数据无效。表达式的值不能超出字段宽度,否则,数据无效。
32、例:例:修改表学生修改表学生.DBF中的中的“高考成绩高考成绩”字段字段数据,每个人加数据,每个人加5分。分。USE 学生学生 REPLACE ALL 高考成绩高考成绩 WITH 高考成绩高考成绩+5例:修改表学生例:修改表学生.DBF中的中的“高考成绩高考成绩”字段字段数据,给每个女生加数据,给每个女生加5分。分。USE 学生学生 REPLACE 高考成绩高考成绩 WITH 高考成绩高考成绩+5 FOR 性别性别=“女女”菜单方式:菜单方式:打开表文件。选择打开表文件。选择【显示显示】|【浏览浏览】命令。命令。选择选择【表表】|【替换字段替换字段】命令,弹出命令,弹出“替替换字段换字段”对话
33、框。对话框。选择要进行替换操作的字段名,在选择要进行替换操作的字段名,在“替换替换为为”显示栏中输入替换表达式,再选择显示栏中输入替换表达式,再选择“替换条件替换条件”显示框中的范围、条件。显示框中的范围、条件。单击单击“替换替换”按钮。按钮。5.55.5表的基本操作表的基本操作 六、插入记录六、插入记录六、插入记录六、插入记录【命令命令命令命令】INSERT BEFORE BLANKINSERT BEFORE BLANK【功能功能功能功能】在当前表文件的指定位置插入新记录或空记在当前表文件的指定位置插入新记录或空记在当前表文件的指定位置插入新记录或空记在当前表文件的指定位置插入新记录或空记录
34、。录。录。录。【说明说明说明说明】INSERTINSERT是在当前记录之后插入新记录,是在当前记录之后插入新记录,是在当前记录之后插入新记录,是在当前记录之后插入新记录,INSERT BEFOREINSERT BEFORE是在当前记录之前插入新记录,是在当前记录之前插入新记录,是在当前记录之前插入新记录,是在当前记录之前插入新记录,INSERT BLANKINSERT BLANK是在当前记录之后插入空记录。是在当前记录之后插入空记录。是在当前记录之后插入空记录。是在当前记录之后插入空记录。若表文件建立了索引,则插入的新记录按索引值若表文件建立了索引,则插入的新记录按索引值若表文件建立了索引,则
35、插入的新记录按索引值若表文件建立了索引,则插入的新记录按索引值进行排列。进行排列。进行排列。进行排列。在表学生在表学生在表学生在表学生.DBF.DBF的第的第的第的第2 2号记录前插入一条新记录。号记录前插入一条新记录。号记录前插入一条新记录。号记录前插入一条新记录。USE USE 学生学生学生学生 GOTO 2GOTO 2 INSERT BEFORE INSERT BEFORE 七删除记录七删除记录 表记录的删除也是表维护的一项经常表记录的删除也是表维护的一项经常性的工作,因为删除意味着数据的消失,性的工作,因为删除意味着数据的消失,所以对记录的删除操作比较慎重,删除可所以对记录的删除操作比
36、较慎重,删除可分为逻辑删除和物理删除两种操作。逻辑分为逻辑删除和物理删除两种操作。逻辑删除还可以恢复,而物理删除则不可恢复。删除还可以恢复,而物理删除则不可恢复。逻辑删除就是给指定的记录作删除标记。逻辑删除就是给指定的记录作删除标记。5.55.5表的基本操作表的基本操作 1逻辑删除记录逻辑删除记录 用命令为记录做删除标记用命令为记录做删除标记【格式格式】DELETE DELETE FOR FOR WHILE WHILE 【功能功能】对当前表中指定范围内满足条件的记录作对当前表中指定范围内满足条件的记录作对当前表中指定范围内满足条件的记录作对当前表中指定范围内满足条件的记录作删除标记。删除标记。
37、删除标记。删除标记。【说明说明】如果同时缺省如果同时缺省如果同时缺省如果同时缺省 和和和和 子句,则仅子句,则仅子句,则仅子句,则仅仅删除当前的记录。仅删除当前的记录。仅删除当前的记录。仅删除当前的记录。delete for delete for 性别性别性别性别=男男男男 5.55.5表的基本操作表的基本操作 菜单方式菜单方式打开表文件,选择打开表文件,选择【表表】|【删除记录删除记录】在在“浏览浏览”窗口中做删除标记窗口中做删除标记5.55.5表的基本操作表的基本操作 2恢复逻辑删除记录恢复逻辑删除记录 命令方式命令方式命令方式命令方式【格式格式格式格式】RECALL RECALL FOR
38、 FOR WHILE WHILE 【说明说明说明说明】RECALLRECALL命令与命令与命令与命令与DELETEDELETE命令相对应,它命令相对应,它命令相对应,它命令相对应,它可以去掉被逻辑删除记录的删除标记。可以去掉被逻辑删除记录的删除标记。可以去掉被逻辑删除记录的删除标记。可以去掉被逻辑删除记录的删除标记。delete for delete for 性别性别性别性别=女女女女 list list 姓名姓名姓名姓名,性别性别性别性别,学号学号学号学号recall allrecall alllist list 姓名姓名姓名姓名,性别性别性别性别,学号学号学号学号useuse菜单方式菜单方
39、式首先打开表文件首先打开表文件选择选择【显示显示】|【浏览浏览】命命令令选择选择【表表】|【恢复记录恢复记录】命令。命令。5.55.5表的基本操作表的基本操作 3物理删除记录物理删除记录命令方式命令方式【格式格式】PACK【功能功能】将当前表文件中所有带删除标记的记将当前表文件中所有带删除标记的记录全部真正地删除掉。录全部真正地删除掉。【说明说明】执行该命令后被删除的记录将不能被执行该命令后被删除的记录将不能被恢复,因此使用时应特别小心。恢复,因此使用时应特别小心。USE 学生学生 DELETE FOR 学号学号=“20072601”PACK菜单方式菜单方式首先打开表文件首先打开表文件选择选择
40、【显示显示】|【浏览浏览】命令,系统弹出记录浏览窗口。命令,系统弹出记录浏览窗口。【表表】菜单菜单选择选择【表表】|【彻底删除彻底删除】命命令。令。5.55.5表的基本操作表的基本操作 4删除全部记录删除全部记录【格式格式】ZAP【功能功能】将当前打开的表文件中的所有记录完全将当前打开的表文件中的所有记录完全删除掉。删除掉。【说明说明】执行该命令之后,将只保留表文件的结执行该命令之后,将只保留表文件的结构,而不再有任何数据存在。构,而不再有任何数据存在。5.55.5表的基本操作表的基本操作 八、数据表与数组之间的数据交换八、数据表与数组之间的数据交换数组数组数组数组 数据表记录数据表记录数据表
41、记录数据表记录5.55.5表的基本操作表的基本操作 1 1将当前记录复制到数组将当前记录复制到数组将当前记录复制到数组将当前记录复制到数组【命令命令命令命令】SCATTER FIELDS SCATTER FIELDS MEMO TO MEMO TO 【功能功能功能功能】将当前记录的字段值按将当前记录的字段值按将当前记录的字段值按将当前记录的字段值按 顺序送入数组元素中。顺序送入数组元素中。顺序送入数组元素中。顺序送入数组元素中。【说明说明说明说明】FIELDSFIELDS:若选择它只传送字段名表中的字段值,:若选择它只传送字段名表中的字段值,:若选择它只传送字段名表中的字段值,:若选择它只传送
42、字段名表中的字段值,否则将传送所有字段值(备注型和通用型除外)。若要否则将传送所有字段值(备注型和通用型除外)。若要否则将传送所有字段值(备注型和通用型除外)。若要否则将传送所有字段值(备注型和通用型除外)。若要传送备注型字段值,还需要使用传送备注型字段值,还需要使用传送备注型字段值,还需要使用传送备注型字段值,还需要使用MEMOMEMO。TO TO :将数据复制到:将数据复制到:将数据复制到:将数据复制到 所示的数组元素中,所示的数组元素中,所示的数组元素中,所示的数组元素中,如果定义的数组长度不够,如果定义的数组长度不够,如果定义的数组长度不够,如果定义的数组长度不够,Visual Fox
43、ProVisual FoxPro会自动扩大数会自动扩大数会自动扩大数会自动扩大数组长度。组长度。组长度。组长度。例题:例题:例题:例题:USE USE 学生学生学生学生 SCATTER FIELDS SCATTER FIELDS 姓名姓名姓名姓名,性别性别性别性别 ,高考成绩高考成绩高考成绩高考成绩 TO MMTO MMLIST MEMORY LIKE MMLIST MEMORY LIKE MM 2 2将数组的数据复制到当前记录将数组的数据复制到当前记录将数组的数据复制到当前记录将数组的数据复制到当前记录【命令命令命令命令】GATHER FROM GATHER FROM FIELDS FIEL
44、DS MEMO MEMO 【功能功能功能功能】将数组中的数据依次复制到当前记录,以替换相应字段值。将数组中的数据依次复制到当前记录,以替换相应字段值。将数组中的数据依次复制到当前记录,以替换相应字段值。将数组中的数据依次复制到当前记录,以替换相应字段值。【说明说明说明说明】FIELDSFIELDS:仅字段名表中的字段值被数组元素替:仅字段名表中的字段值被数组元素替:仅字段名表中的字段值被数组元素替:仅字段名表中的字段值被数组元素替代,否则将按顺序依次替代,多出的字段不改变;若数代,否则将按顺序依次替代,多出的字段不改变;若数代,否则将按顺序依次替代,多出的字段不改变;若数代,否则将按顺序依次替
45、代,多出的字段不改变;若数组元素多于记录中字段个数,则多余数组元素被忽略。组元素多于记录中字段个数,则多余数组元素被忽略。组元素多于记录中字段个数,则多余数组元素被忽略。组元素多于记录中字段个数,则多余数组元素被忽略。若不选用若不选用若不选用若不选用MEMOMEMO,则忽略备注字段。,则忽略备注字段。,则忽略备注字段。,则忽略备注字段。例题:例题:例题:例题:USE USE 学生学生学生学生 APPEND BLANKAPPEND BLANK DIME NN(3)DIME NN(3)NN(1)=888888 NN(1)=888888 NN(2)=NN(2)=高高高高飞飞飞飞 NN(3)=580N
46、N(3)=580 GATHER FROM NN FIELDS GATHER FROM NN FIELDS 学号学号学号学号,姓名姓名姓名姓名,高考成绩高考成绩高考成绩高考成绩 BROW BROW 5.6排序 为了高效方便地存取数据,往往要为了高效方便地存取数据,往往要为了高效方便地存取数据,往往要为了高效方便地存取数据,往往要求表记录以一定的顺序排放或显示,因求表记录以一定的顺序排放或显示,因求表记录以一定的顺序排放或显示,因求表记录以一定的顺序排放或显示,因此,此,此,此,Visual FoxProVisual FoxPro提供了两种方法重提供了两种方法重提供了两种方法重提供了两种方法重新组
47、织数据,即排序和索引。新组织数据,即排序和索引。新组织数据,即排序和索引。新组织数据,即排序和索引。排序是从物理上对表进行重新整理,排序是从物理上对表进行重新整理,排序是从物理上对表进行重新整理,排序是从物理上对表进行重新整理,按照指定的关键字段的值的大小来重新按照指定的关键字段的值的大小来重新按照指定的关键字段的值的大小来重新按照指定的关键字段的值的大小来重新排列表中数据记录的顺序,并产生一个排列表中数据记录的顺序,并产生一个排列表中数据记录的顺序,并产生一个排列表中数据记录的顺序,并产生一个新的表文件。由于新表的产生即费时间新的表文件。由于新表的产生即费时间新的表文件。由于新表的产生即费时
48、间新的表文件。由于新表的产生即费时间也浪费空间,实际中很少用。也浪费空间,实际中很少用。也浪费空间,实际中很少用。也浪费空间,实际中很少用。排序的命令是:排序的命令是:排序的命令是:排序的命令是:【格式格式格式格式】SORT TO SORT TO ON ON /A|1/A|/D/C,/D/C,/A|/D/C.ASCENDING 2/A|/D/C.ASCENDING|DESCENDING|DESCENDING FOR FOR 1 WHILE WHILE FIELDS FIELDS【功能功能功能功能】对当前打开的表,按指定的字段进行排序,对当前打开的表,按指定的字段进行排序,对当前打开的表,按指定
49、的字段进行排序,对当前打开的表,按指定的字段进行排序,生成新的表文件。生成新的表文件。生成新的表文件。生成新的表文件。【说明说明说明说明】用作排序的字段的数据类型允许是用作排序的字段的数据类型允许是用作排序的字段的数据类型允许是用作排序的字段的数据类型允许是N N、C C、D D、L L。/A/A 表示升序;表示升序;表示升序;表示升序;/D/D 表示降序;表示降序;表示降序;表示降序;/C/C 表示不区分大小表示不区分大小表示不区分大小表示不区分大小写,写,写,写,/C/C可以与可以与可以与可以与/A/A或或或或/D/D合用,如合用,如合用,如合用,如/AC/AC或或或或/DC/DC。当有多
50、个关键字段时,先按字段当有多个关键字段时,先按字段当有多个关键字段时,先按字段当有多个关键字段时,先按字段1 1的值排列,其的值排列,其的值排列,其的值排列,其值相同的,再按字段值相同的,再按字段值相同的,再按字段值相同的,再按字段2 2的值排列。的值排列。的值排列。的值排列。ASCENDINGASCENDING:将所有不带:将所有不带:将所有不带:将所有不带/D/D的字段指定为升的字段指定为升的字段指定为升的字段指定为升序排序。序排序。序排序。序排序。DESCENDINGDESCENDING:将所有不带:将所有不带:将所有不带:将所有不带/A/A的字段指定为降的字段指定为降的字段指定为降的字