第2章数据表的建立与操作_第1页
第2章数据表的建立与操作_第2页
第2章数据表的建立与操作_第3页
第2章数据表的建立与操作_第4页
第2章数据表的建立与操作_第5页
已阅读5页,还剩112页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、数据库原理与应用浙江财经学院信息学院 软件教研室 2005-2006 ZUFE, Information School理论教学课后习题与上机实验本章要点回顾学习提要与目标返回返回注意注意: :在输入过程中,移动光标可使用在输入过程中,移动光标可使用TABTAB键或使用鼠标,不键或使用鼠标,不能按回车键,按回车键则是结束表结构的创建!能按回车键,按回车键则是结束表结构的创建! “插入插入”按钮:在已选定的字段前插入一个新字段。按钮:在已选定的字段前插入一个新字段。“删除删除”按钮:从表中删除选定字段。按钮:从表中删除选定字段。拖动字段名左端的方块可改变字段的顺序。拖动字段名左端的方块可改变字段的

2、顺序。格式:格式:CREATE /?功能:在当前文件夹下建立一个新数据表文件(功能:在当前文件夹下建立一个新数据表文件(.DBF)。)。若有备注字段则自动建立一个同名的备注文件(若有备注字段则自动建立一个同名的备注文件(.FPT) 当前文件夹也即默认目录。系统默认目录一般是当前文件夹也即默认目录。系统默认目录一般是Visual FoxPro系统所在的文件夹,需要我们重新设置默认目录,系统所在的文件夹,需要我们重新设置默认目录,默认目录的设置方法有下面两种:默认目录的设置方法有下面两种:方法方法1(菜单方式):(菜单方式): 使用菜单命令:使用菜单命令:“工具工具”“选项选项”,出现,出现“选项

3、选项”对话对话框框 方法方法2 2(命令方式):(命令方式):命令格式:命令格式: SET DEFAULT TO SET DEFAULT TO 例例2.12.1:用命令方式将当前工作目录设置为:用命令方式将当前工作目录设置为D D盘盘“VFP”VFP”文件文件夹下的夹下的“数据数据”文件夹。文件夹。SET DEFAULT TO D:VFPSET DEFAULT TO D:VFP数据数据 &在命令窗口输入在命令窗口输入(2 2)通过复制建立表结构)通过复制建立表结构 :格式:格式:COPY STRUCTURE TO COPY STRUCTURE TO FIELDS FIELDS功能:复制当前表文

4、件的结构到指定的文件。功能:复制当前表文件的结构到指定的文件。例例2.22.2:从已存在的:从已存在的“学生学生”表创建表创建“XS1”XS1”的表结构,的表结构,“XS1”XS1”表的结构与表的结构与“学生学生”表的结构一样。表的结构一样。USE USE 学生学生COPY STRUCTURE TO XS1COPY STRUCTURE TO XS1例例2.32.3:从已存在的:从已存在的“学生学生”表创建表创建“XS2”XS2”的表结构,的表结构,“XS2”XS2”表的结构只取表的结构只取“学生学生”表的学号、姓名、性别三个字段。表的学号、姓名、性别三个字段。COPY STRUCTURE TO

5、 XS2 FIELD COPY STRUCTURE TO XS2 FIELD 学号,姓名,性别学号,姓名,性别1 1、表结构的显示、表结构的显示格式格式1 1:DISPLAY STRUCTURE DISPLAY STRUCTURE 格式格式2 2:LIST STRUCTURELIST STRUCTURE注意:注意:DISPLAY STRUCTUREDISPLAY STRUCTURE的显示格式是分页显示,的显示格式是分页显示,而而LIST STRUCTURELIST STRUCTURE的显示格式是连续滚动显示。的显示格式是连续滚动显示。例例2.42.4:显示:显示“学生学生.DBF”.DBF”表

6、结构,在命令窗口输入下述命表结构,在命令窗口输入下述命令:令:USE USE 学生学生DISPLAY STRUCTUREDISPLAY STRUCTURE总计的字节数为总计的字节数为38,比各字段宽度之和多,比各字段宽度之和多1个字节,用来个字节,用来存放删除标记存放删除标记“*”。如果支持空值,则总计的字节数为如果支持空值,则总计的字节数为39,还要增加,还要增加1个字节,用来记录支持空值的状态。个字节,用来记录支持空值的状态。2.表结构的修改表结构的修改(1).菜单方式菜单方式从从“显示显示”“表设计器表设计器”命令,进入表设命令,进入表设计器,可查看和修改当前表的结构。计器,可查看和修改

7、当前表的结构。(2)命令方式)命令方式格式:格式:MODIFY STRUCTURE功能:用表设计器修改当前表结构。功能:用表设计器修改当前表结构。注意:在修改表结构时要防止数据的丢失。注意:在修改表结构时要防止数据的丢失。更改字段类型或字段宽度变小时,原字段内容会丢失。更改字段类型或字段宽度变小时,原字段内容会丢失。在更改表结构后会自动建立原表的备份。在更改表结构后会自动建立原表的备份。(.DBF.BAK,.FPT.TBK)如果丢失了数据,可以通过备份文件恢复。如果丢失了数据,可以通过备份文件恢复。 ( .BAK .DBF , .TBK .FPT )2.2.1 表文件的打开与关闭表文件的打开与

8、关闭1、表的打开、表的打开(1)菜单方式:)菜单方式:方法方法1:“文件文件”“打开打开”方法方法2:选择选择“窗口窗口”“数据工数据工作期作期” 菜单命令菜单命令(2)命令方式:)命令方式:格式:格式:USE 功能:在当前工作区打开指定的表文件。功能:在当前工作区打开指定的表文件。 说明:说明:(1)默认扩展名是默认扩展名是.DBF。 (2)若表中有备注字段,自动打开相关若表中有备注字段,自动打开相关的备注文件的备注文件 (.FPT)。(3)表文件打开时,表文件打开时,记录指针指向首记录记录指针指向首记录。2 2、表的关闭、表的关闭注意:关闭表的浏览窗口,并未关闭文件。注意:关闭表的浏览窗口

9、,并未关闭文件。(2 2)命令方式)命令方式 USEUSE:使用不加表名的:使用不加表名的USEUSE命令,关闭当前工作区命令,关闭当前工作区中打开的表。中打开的表。 CLOSE TABELSCLOSE TABELS:关闭所有工作区中已打开的表文:关闭所有工作区中已打开的表文件。件。CLEAR ALLCLEAR ALL:清除内存变量,同时关闭所有工作区:清除内存变量,同时关闭所有工作区中已打开的表文件。中已打开的表文件。CLOSE ALLCLOSE ALL:关闭所有已打开的文件,包括表文件。:关闭所有已打开的文件,包括表文件。当结构建完后,屏幕自动提示当结构建完后,屏幕自动提示“现在输入数据记

10、录吗?现在输入数据记录吗?”,回答回答“是是”,即可立即给一个空表输入记录。,即可立即给一个空表输入记录。没有立即输入记录,可以用下面的方法输入记录。没有立即输入记录,可以用下面的方法输入记录。1 1、 用菜单方式输入记录用菜单方式输入记录 :(1 1)追加任意条记录:)追加任意条记录:选择选择“显示显示”“浏览浏览表表” ” 进入表的浏览窗口,然后进入表的浏览窗口,然后选择选择“显示显示”“追加方式追加方式” ” 菜单命令菜单命令,(2 2)追加一个空白记录)追加一个空白记录 :“显示显示” ” “浏览浏览表表”的命令,进入表的浏览窗口,的命令,进入表的浏览窗口,然后选择然后选择“表表”“追

11、加新记录追加新记录”(3) (3) 成批追加记录:选择成批追加记录:选择“表表”+“+“追加记录追加记录”。2.2.命令方式命令方式(1)(1)追加记录。追加记录。格式:格式:APPEND BLANK IN APPEND BLANK IN / 功能:在表的末尾添加一个或多个新记录。功能:在表的末尾添加一个或多个新记录。说明:说明:BLANKBLANK选项是添加一个空记录选项是添加一个空记录例例2.52.5:给学生表追加记录。:给学生表追加记录。USE USE 学生学生 APPEND &APPEND &用全屏幕编辑方式追加记录用全屏幕编辑方式追加记录APPEND BLANK &APPEND BL

12、ANK &在表文件末尾追加一个空记录在表文件末尾追加一个空记录(2)(2)插入命令插入命令格式:格式:INSERT BEFOREBLANKINSERT BEFOREBLANK功能:在当前表中插入一个新记录。功能:在当前表中插入一个新记录。说明:说明:BLANKBLANK选项:插入一个空记录。选项:插入一个空记录。BEFOREBEFORE选项:在当前记录前插入一个新记录。选项:在当前记录前插入一个新记录。注意问题:注意问题:记录多时不宜使用记录多时不宜使用 INSERT INSERT 命令。命令。没有主控索引时,用没有主控索引时,用INSERT INSERT 命令插入的记录只能添加到命令插入的记

13、录只能添加到表的最后;如果有主控索引,插入的记录调整到相应的位表的最后;如果有主控索引,插入的记录调整到相应的位置。置。对具有完整性约束对具有完整性约束( (如触发器、主关键字或候选关键字等如触发器、主关键字或候选关键字等) )的表不能使用的表不能使用 INSERT INSERT 命令命令( (见本书第见本书第7 7章章) )。例例2.62.6:在:在“学生学生.DBF”.DBF”表的第表的第5 5条记录前、后各插入一条空条记录前、后各插入一条空记录。记录。USE USE 学生学生 GO 5GO 5INSERT BLANK INSERT BLANK GO 5GO 5INSERT BEFORE

14、BLANK INSERT BEFORE BLANK LIST &LIST &结果如图结果如图2.192.19所示所示3.3.编辑备注字段编辑备注字段显示显示“memo”memo”表示无数据。显示表示无数据。显示“Memo”Memo”,表示已有数据。,表示已有数据。进入编辑状态:进入编辑状态:双击备注字段双击备注字段或在备注字段上按或在备注字段上按Ctrl+PgDnCtrl+PgDn键。键。退出:退出:关闭窗口关闭窗口或或Ctrl+WCtrl+W或菜单或菜单“文件文件”+“+“关闭关闭”,保存,保存并关闭。并关闭。ESCESC键或键或Ctrl+QCtrl+Q,则不保存退出。,则不保存退出。4.4

15、.编辑通用字段:编辑通用字段:(1 1)OLEOLE对象对象 :OLEOLE是是Object Linking and EmbeddingObject Linking and Embedding的简称,即对的简称,即对象的链接与嵌入。象的链接与嵌入。OLEOLE对象可以是一个完整的对象可以是一个完整的Word Word 文档或文档或部分的部分的Word Word 文档,也可以是一幅画、一张照片,或者一段文档,也可以是一幅画、一张照片,或者一段音乐。音乐。(2 2)链接与嵌入)链接与嵌入 :链接方法是按照文件的路径与指定文件保持连接;链接方法是按照文件的路径与指定文件保持连接;嵌入方法则是将指定文

16、件的副本放到嵌入方法则是将指定文件的副本放到Visual FoxProVisual FoxPro中。中。链接与嵌入的区别:数据的存储地点不同。链接与嵌入的区别:数据的存储地点不同。(3)(3)将将OLEOLE对象链接到通用型字段:对象链接到通用型字段: (被链接的文件应存在)(被链接的文件应存在)“gengen”表示尚无数据,表示尚无数据, “ “Gen”Gen”表示已有数据存在。表示已有数据存在。用鼠标双击通用型字段或按用鼠标双击通用型字段或按Ctrl+PgDnCtrl+PgDn键,进入通用型字键,进入通用型字段编辑窗口段编辑窗口; ;选择选择“编辑编辑”“插入对象插入对象”命令;命令;选择

17、选择“由文件创建由文件创建”,并将链接打,并将链接打,按,按“浏览浏览”按钮,按钮,找到需要的文件,找到需要的文件,“确定确定”(4)(4)将将OLEOLE对象嵌入到通用型字段:对象嵌入到通用型字段:进入通用型字段编辑窗口;进入通用型字段编辑窗口;选择选择“编辑编辑”“插入对象插入对象”命令,;命令,;选择选择“新建新建”,选择一个应用程序,建立对应的文件并嵌,选择一个应用程序,建立对应的文件并嵌入;或者选择入;或者选择“由文件创建由文件创建” ” ,但链接不打,但链接不打,按,按“浏浏览览”按钮按钮. . (5)(5)通用型字段内容的修改与删除:通用型字段内容的修改与删除:修改:进入通用型字

18、段编辑窗口后,双击对象调出该对象修改:进入通用型字段编辑窗口后,双击对象调出该对象的应用程序,可对对象进行修改。的应用程序,可对对象进行修改。删除:进入已放入删除:进入已放入OLEOLE对象的通用型字段编辑窗口,选择对象的通用型字段编辑窗口,选择菜单菜单“编辑编辑” ” “清除清除”命令,可将命令,可将OLEOLE对象删除。对象删除。1 1、菜单方式:、菜单方式:选择菜单选择菜单“显示显示” ” “浏览浏览表表” ” ,用浏览窗口,用浏览窗口浏览表的内容浏览表的内容浏览窗口有浏览窗口有 “ “浏览浏览”和和“编辑编辑” ” 两种显示方式,用菜单两种显示方式,用菜单“显示显示” ” “浏览浏览”

19、和和“显示显示” ” “编辑编辑”命令来切换。命令来切换。2.2.命令方式命令方式(1 1)浏览命令()浏览命令(BROWSEBROWSE)格式:格式:BROWSE FIELDSBROWSE FIELDSFORFORLASTTITLE LASTTITLE 功能:打开当前表的浏览窗口,可实现显示、修改、删除和功能:打开当前表的浏览窗口,可实现显示、修改、删除和追加表中的记录。追加表中的记录。参数:参数:FIELDSFIELDS:指定显示的字段。缺省为所有字段。:指定显示的字段。缺省为所有字段。FOR FOR :只有:只有 为为“真真”的记录才显示于浏览窗的记录才显示于浏览窗口。口。LASTLAS

20、T:表示保留上次命令:表示保留上次命令FIELDSFIELDS的选择。的选择。 TITLE TITLE :改写标题栏中的默认表名。:改写标题栏中的默认表名。例例2.72.7:浏览:浏览“学生学生.DBF”.DBF”表中男同学记录的学号表中男同学记录的学号, ,姓名姓名, ,出出生年月字段,并给出浏览标题:生年月字段,并给出浏览标题:“男生基本情况表男生基本情况表”。USE USE 学生学生BROWSE FIELDS BROWSE FIELDS 学号学号, ,姓名姓名, ,出生年月出生年月 FOR FOR 性别性别; ;TITLE “TITLE “男生基本情况表男生基本情况表”(2 2)连续滚动

21、显示:)连续滚动显示:格式:格式:LIST OFF LIST OFF FOR .FIELDS.FOR .FIELDS.功能:滚动显示表中的记录。功能:滚动显示表中的记录。说明:说明:OFF OFF :不显示记录号;:不显示记录号;:有:有ALLALL、NEXT NNEXT N、RECORD NRECORD N、RESTRESTFOR FOR :指定显示记录的条件:指定显示记录的条件WHILEWHILE :遇到不满足条件的记录就停止,优先于:遇到不满足条件的记录就停止,优先于FORFOR 默认范围为默认范围为ALLALL,命令执行完毕记录指针定在文件尾。,命令执行完毕记录指针定在文件尾。如果要显

22、示备注字段的内容,必须在如果要显示备注字段的内容,必须在LISTLIST命令中指定字段命令中指定字段名名 例例2.82.8:用:用LISTLIST命令进行显示命令进行显示“学生学生.DBF”.DBF”表记录的各种操表记录的各种操作。作。USE USE 学生学生LIST &LIST &显示所有记录显示所有记录LIST FIELDS LIST FIELDS 学号学号, ,姓名姓名,YEAR(,YEAR(出生年月出生年月),),奖学金奖学金, ,奖学金奖学金+100+100GO 1 &GO 1 &记录指针移到第记录指针移到第1 1条记录条记录LIST NEXT 3 FIELDS LIST NEXT

23、3 FIELDS 学号学号, ,姓名姓名, ,性别性别, ,简历简历?RECNO( ) &?RECNO( ) &测试记录指针的位置,结果是测试记录指针的位置,结果是3P473P47LIST FOR SUBSTR(LIST FOR SUBSTR(学号学号,1,3) =”953” .AND.,1,3) =”953” .AND.性别性别P43P43GO 6 &GO 6 &记录指针移到第记录指针移到第6 6条记录条记录LIST REST &LIST REST &显示第显示第6 6及后续的所有记录及后续的所有记录?EOF() &?EOF() &测试记录指针是否在文件尾,结果为测试记录指针是否在文件尾,结

24、果为.T.T. P47P47(3)(3)分屏显示分屏显示格式:格式:DISPLAY OFF DISPLAY OFF FOR FOR FIELDS FIELDS 功能:分屏显示当前表中的指定数据,功能与功能:分屏显示当前表中的指定数据,功能与LISTLIST相同。相同。说明:说明:在不带所有选项时,在不带所有选项时,DISPLAYDISPLAY的默认范围为当前记录。的默认范围为当前记录。DISPLAYDISPLAY与与LISTLIST的区别有两点:的区别有两点:DISPLAYDISPLAY的默认范围为当前记录,的默认范围为当前记录,LISTLIST的默认范围为所有记的默认范围为所有记录;录;DI

25、SPLAYDISPLAY是分屏显示,是分屏显示,LISTLIST是滚屏显示。是滚屏显示。例例2.92.9:分屏显示:分屏显示“学生学生.DBF”.DBF”表记录。表记录。USE USE 学生学生 &刚打开的表,记录指针在第刚打开的表,记录指针在第1 1条记录条记录DISPLAYDISPLAYDISPLAY FOR !DISPLAY FOR !性别性别 AND AND 出生年月出生年月=1971-01-01 P36&=1971-01-01 P36&注意带选项后是从所有的记录中挑选满足条件的记录注意带选项后是从所有的记录中挑选满足条件的记录表内容的编辑修改表内容的编辑修改1 1、记录指针、记录指针

26、是系统给表文件设计的一种内部标志,用来指出表的是系统给表文件设计的一种内部标志,用来指出表的当前记录。当前记录。记录号:表的每条记录都有一个,记录号是系统按照表记记录号:表的每条记录都有一个,记录号是系统按照表记录输入时的顺序自动给加上的,不是用户设计的字段。录输入时的顺序自动给加上的,不是用户设计的字段。记录指针定位的方法有三种:记录指针定位的方法有三种:绝对定位、相对定位和查找定位。绝对定位、相对定位和查找定位。2.2.绝对移动绝对移动格式格式1 1:GO/GOTO RECORD GO/GOTO RECORD 格式格式2 2:GO/GOTO TOP/BOTTOMGO/GOTO TOP/BO

27、TTOM文件头文件头BOFBOFTOPTOP(首记录)(首记录)BOTTOMBOTTOM(末记录)(末记录)文件尾文件尾EOFEOF3.3.相对移动相对移动格式:格式:SKIP SKIP 功能:使记录指针在表中向前或向后相对移动。功能:使记录指针在表中向前或向后相对移动。USE USE 学生学生?RECNO(),BOF()?RECNO(),BOF()LISTLIST?RECNO(),EOF() ?RECNO(),EOF() GO TOPGO TOP?RECNO(),BOF() ?RECNO(),BOF() SKIP 1SKIP 1?RECNO(),BOF()?RECNO(),BOF()GO B

28、OTTOMGO BOTTOM?RECNO(),EOF()?RECNO(),EOF()SKIP SKIP ?RECNO(),EOF() ?RECNO(),EOF() GO 5GO 5DISPLAYDISPLAYSKIP 22SKIP 22?RECNO(),EOF()?RECNO(),EOF()1 1、菜单方式、菜单方式打开表后,选择打开表后,选择“显示显示”“浏览浏览” ” 进入浏览窗口进入浏览窗口2 2、命令方式、命令方式修改有:修改有:BROWSEBROWSE、EDITEDIT、CHANGECHANGE、REPLACEREPLACE等命令。等命令。其中其中BROWSEBROWSE、EDITE

29、DIT、CHANGECHANGE命令与上面的菜单类似。命令与上面的菜单类似。重点掌握成批修改命令:重点掌握成批修改命令:REPLACEREPLACE格式:格式:REPLACE REPLACE WITH WITH , , 2 WITH WITH FOR FOR 注意:默认范围是当前记录注意:默认范围是当前记录例例2.112.11:将:将“学生学生.DBF”.DBF”表复制生成一个副本表复制生成一个副本“XS1.DBF”,XS1.DBF”,然后将然后将“XS1.DBF”XS1.DBF”表的奖学金字段的数据改为原来的十表的奖学金字段的数据改为原来的十倍,并将罗浩的出生年月改为倍,并将罗浩的出生年月改

30、为19721972年年9 9月月8 8日。日。USE USE 学生学生COPY TO XS1 COPY TO XS1 USE XS1USE XS1REPLACE ALL REPLACE ALL 奖学金奖学金 WITH WITH 奖学金奖学金* *1010LOCATE FOR LOCATE FOR 姓名姓名=罗罗 浩浩 & &查找查找 罗罗 浩浩 的记录的记录REPLACE REPLACE 出生年月出生年月 WITH 1972-09-08 WITH 1972-09-08 LIST &LIST &结果如图结果如图2.372.37所示所示例例2.122.12:有一个工资表文件:有一个工资表文件“工资

31、工资.DBF”.DBF”,其表结构如表,其表结构如表2.82.8所示,要求计算每位职工的应发工资和实发工资。所示,要求计算每位职工的应发工资和实发工资。USE USE 工资工资LISTLIST1 1、菜单方式(在浏览窗口中进行)、菜单方式(在浏览窗口中进行)(1)(1)逻辑删除:逻辑删除:进入表的浏览窗口,单击要删记录左边的小方框进入表的浏览窗口,单击要删记录左边的小方框( (即删除框即删除框) ) (2) (2) 物理删除:选择物理删除:选择“表表”“彻底删除彻底删除”。2 2、命令方式、命令方式(1)(1)逻辑删除逻辑删除格式:格式:DELETE DELETE FOR FOR 功能:给要删

32、除的记录打上删除标记功能:给要删除的记录打上删除标记“* *” ” 。注意:默认范围是当前记录注意:默认范围是当前记录(NEXT 1)(NEXT 1)例例2.132.13:记录的逻辑删:记录的逻辑删除。除。USE USE 学生学生COPY TO XS2COPY TO XS2USE XS2USE XS2DELETE FOR DELETE FOR 奖学金奖学金=75 =75 GO 5GO 5DELETEDELETELIST &LIST &结果如图结果如图2.422.42所示,所示,1 1、2 2、5 5、9 9记录被逻辑删除记录被逻辑删除(2) (2) 设置逻辑删除的有效性设置逻辑删除的有效性格式

33、:格式:SET DELETED ON/OFFSET DELETED ON/OFF功能:指定标有删除标记的记录是否参与其他命令的处理。功能:指定标有删除标记的记录是否参与其他命令的处理。SET DELETED ONSET DELETED ONLIST &LIST &显示结果如图显示结果如图2. 432. 43(3)(3)恢复删除恢复删除格式:格式:RECALL RECALL FOR FOR 功能:将指定记录的逻辑删除标记清除功能:将指定记录的逻辑删除标记清除 。注意:默认的范围是当前记录注意:默认的范围是当前记录(NEXT 1)(NEXT 1)。例例2.152.15:表记录的逻辑删除与恢复。:表

34、记录的逻辑删除与恢复。USE USE 课程课程DELETE FOR DELETE FOR 考查标志考查标志=“1” =“1” SET DELETED OFFSET DELETED OFFLISTLISTRECALL FOR RECALL FOR 开课学期开课学期=“1” =“1” LISTLIST(4)(4)物理删除物理删除格式:格式:PACK PACK 功能:永久删除当前表中标有删除标记的记录。功能:永久删除当前表中标有删除标记的记录。例例2.162.16:物理删除操作。:物理删除操作。USE USE 学生学生COPY TO XS3COPY TO XS3USE XS3USE XS3DELET

35、E FOR DELETE FOR 性别性别PACK &PACKPACK &PACK后记录号重新编排后记录号重新编排LISTLIST(5)(5)删除所有记录删除所有记录格式:格式:ZAPZAP功能:物理删除所有记录,只留下表的结构。功能:物理删除所有记录,只留下表的结构。例例2.172.17:物理删除所有记录。:物理删除所有记录。USE XS3USE XS3LIST &LIST &结果如图结果如图2.462.46所示所示SET SAFETY ON &SET SAFETY ON &设置安全开关为设置安全开关为ONON状态状态ZAP &ZAP &出现确认对话框,如图出现确认对话框,如图2.472.4

36、7所示所示表内容的索引及查找表内容的索引及查找格式:格式:SORT TO SORT TO ON ON 1 /A/D/C/A/D/C功能:对当前表按功能:对当前表按 1 、 2 依次排序,并依次排序,并将排序后的记录存放到指定文件中。将排序后的记录存放到指定文件中。注意:命令的默认范围是注意:命令的默认范围是ALLALL。USE USE 学生学生SORT ON SORT ON 奖学金奖学金, , 出生年月出生年月 TO XSS64 TO XSS64 USE XSS64USE XSS64LISTLISTSORT ON SORT ON 学号学号 TO XSS1 FIELD TO XSS1 FIELD

37、 学号学号, ,姓名姓名 USE XSS1USE XSS1LIST &LIST &结果略结果略SORTSORT排序的不足:排序的不足:是物理排序,生成与原表一样大小的是物理排序,生成与原表一样大小的.DBF.DBF文件,排序文件,排序的速度慢,占很大的存储空间。的速度慢,占很大的存储空间。1 1、索引文件的概念、索引文件的概念仅由索引关键字和指针(记录号)组成的文件。仅由索引关键字和指针(记录号)组成的文件。索引文件索引文件2 2、索引文件的分类、索引文件的分类索引文件索引文件单项索引单项索引.IDX.IDX复合索引复合索引.CDX.CDX压缩压缩不压缩不压缩结构复合索引结构复合索引非结构非结

38、构( (独立独立) )复合索引复合索引(1 1)单项索引文件()单项索引文件( .IDX .IDX ) 用命令建立,只有一个索引项,不会随着表的打开而用命令建立,只有一个索引项,不会随着表的打开而打开。打开。单项索引文件的示意单项索引文件的示意(2 2)结构复合索引文件)结构复合索引文件 (.CDX.CDX)在创建表或修改表结构时建立的。与表名相同,随表在创建表或修改表结构时建立的。与表名相同,随表自动打开和同时关闭。自动打开和同时关闭。结构复合索引文件示意结构复合索引文件示意 (3 3)非结构)非结构( (独立独立) )复合索引文件复合索引文件 (.CDX.CDX)是用命令另行建立的,与表文

39、件不同名。不会随表自是用命令另行建立的,与表文件不同名。不会随表自动打开,必须用命令打开。动打开,必须用命令打开。非结构复合索引文件示意非结构复合索引文件示意 建议:表文件的索建议:表文件的索引一般选择结构复引一般选择结构复合索引文件的形式。合索引文件的形式。 如果是临时需要索如果是临时需要索引,可以选择单项引,可以选择单项索引文件索引文件.IDX.IDX。3 3、创建索引文件、创建索引文件(1 1)菜单方式)菜单方式: : (只能建结构复合索引!)(只能建结构复合索引!)“显示显示”“表设计器表设计器”“字段卡字段卡” 也可以在也可以在“索引卡索引卡”中建立、修改和删除索引标识中建立、修改和

40、删除索引标识。主索引:索引表达式必须是关键字段。主索引:索引表达式必须是关键字段。候选索引:同主索引的要求。候选索引:同主索引的要求。唯一索引:相同索引值的记录只留一条记录。唯一索引:相同索引值的记录只留一条记录。普通索引:没有限制。普通索引:没有限制。(2) (2) 命令方式命令方式建立单项索引文件建立单项索引文件: :格式:格式:INDEX ON INDEX ON TO TO UNIQUE COMPACT ADDITIVEUNIQUE COMPACT ADDITIVE功能:对当前表根据索引表达式的值升序建立单项索引文件功能:对当前表根据索引表达式的值升序建立单项索引文件。压缩压缩索引唯一性

41、索引唯一性添加,不关闭原添加,不关闭原索引索引例例2.192.19:建立各种单项索引文件。:建立各种单项索引文件。USE USE 学生学生INDEX ON INDEX ON 学号学号 TO XHTO XHINDEX ON INDEX ON 奖学金奖学金 TO JXJTO JXJINDEX ON STR(INDEX ON STR(奖学金奖学金,6,2)+DTOS(,6,2)+DTOS(出生年月出生年月) TO S64) TO S64LIST &LIST &结果如图结果如图2.582.58所示所示INDEX ON 8000-INDEX ON 8000-奖学金奖学金 TO JXJJXTO JXJJX

42、建立复合索引文件建立复合索引文件格式:格式:INDEX ON INDEX ON TAG TAG OF OF FOR FOR UNIQUE UNIQUE ASCENDING/DESCENDING ADDITIVEASCENDING/DESCENDING ADDITIVE功能:对当前表按索引表达式升序或降序建立索引,并以功能:对当前表按索引表达式升序或降序建立索引,并以索引标识为标志,存入结构复合索引文件或索引标识为标志,存入结构复合索引文件或OFOF后指定后指定的非结构的非结构( (独立独立) )复合索引文件中。复合索引文件中。非结构非结构( (独立独立) )复合索引文件名复合索引文件名升序升序

43、/ /降序降序例例2.202.20:建立各种复合索引文件。:建立各种复合索引文件。USE USE 学生学生 EXCLUSIVE &EXCLUSIVE &建立结构复合索引文件必须以独建立结构复合索引文件必须以独占方式打开表文件占方式打开表文件INDEX ON INDEX ON 姓名姓名 TAG XM1 TAG XM1 INDEX ON INDEX ON 姓名姓名 TAG XM2 OF FJG TAG XM2 OF FJG INDEX ON INDEX ON 性别性别 TAG XB OF FJG UNIQUETAG XB OF FJG UNIQUEINDEX ON INDEX ON 奖学金奖学金

44、DESCENDING TAG JXJDESCENDING TAG JXJ4 4、打开索引文件、打开索引文件(下列情况索引已打开:刚建立的索引、结构复合索引。)(下列情况索引已打开:刚建立的索引、结构复合索引。)(1 1)打开表的同时打开索引文件)打开表的同时打开索引文件格式:格式:USE USE INDEX INDEX ORDER ORDER /TAG /TAG OF OF 功能:在打开表文件时打开各个索引文件。功能:在打开表文件时打开各个索引文件。例例2.232.23:打开索引文件并观察记录指针以及文件头尾的情况。:打开索引文件并观察记录指针以及文件头尾的情况。GO TOPGO TOP?RE

45、CNO(),BOF()?RECNO(),BOF()SKIP -1SKIP -1?RECNO(),BOF()?RECNO(),BOF()GO BOTTOMGO BOTTOM?RECNO(),EOF()?RECNO(),EOF()SKIPSKIP?RECNO(),EOF()?RECNO(),EOF() (10 .T.) (10 .T.)(2 2)打开表文件后打开索引文件)打开表文件后打开索引文件格式:格式:SET INDEX TO SET INDEX TO ORDER. ORDER. 功能:打开一个或多个索引文件,供当前表使用。功能:打开一个或多个索引文件,供当前表使用。例例2.242.24:打开

46、前面已经建立的非结构复合索引文件:打开前面已经建立的非结构复合索引文件FJG.CDXFJG.CDX、单项索引文件单项索引文件XS64.IDXXS64.IDX、XH.IDXXH.IDX、JXJ.IDXJXJ.IDX,并观察主控索,并观察主控索引。引。USE USE 学生学生SET INDEX TO FJG, XS64, XHSET INDEX TO FJG, XS64, XHLIST LIST &记录以物理顺序显示(见图记录以物理顺序显示(见图2.622.62)SET INDEX TO JXJ ADDITIVE &SET INDEX TO JXJ ADDITIVE &追加打开追加打开JXJ.ID

47、XJXJ.IDXLISTLIST&以以JXJ.IDXJXJ.IDX为主控索引,如图为主控索引,如图2.632.63所示所示5 5、确定主控索引文件、确定主控索引文件所谓主控索引是指处理和显示记录使用的索引顺序。所谓主控索引是指处理和显示记录使用的索引顺序。格式:格式:SET ORDER TO SET ORDER TO / TAG/ TAGOFOF功能:重新确定主控索引文件功能:重新确定主控索引文件说明:有三种方式:说明:有三种方式: :1 1、2 2、3 3、.,顺序为:打开的,顺序为:打开的.IDX.IDX文件,然文件,然后是结构复合索引中按其生成顺序编号;最后是非结构后是结构复合索引中按其

48、生成顺序编号;最后是非结构( (独独立立) )复合索引文件按其生成顺序编号。可查看表设计器中的复合索引文件按其生成顺序编号。可查看表设计器中的索引卡。索引卡。单项索引文件名:单项索引文件名:复合索引的索引标识:复合索引的索引标识: TAGTAGOFOF例例2.252.25:确定主控索引文件或主控标识。:确定主控索引文件或主控标识。SET ORDER TO XH SET ORDER TO XH SET ORDER TO TAG XB SET ORDER TO TAG XB LIST &LIST &结果如图结果如图2.662.66所示所示SET ORDER TO &SET ORDER TO &恢复

49、自然顺序恢复自然顺序6 6、索引文件更新、索引文件更新格式:格式:REINDEX REINDEX 功能:更新当前工作区打开的所有索引文件。功能:更新当前工作区打开的所有索引文件。例例2.262.26:更新索引实例。:更新索引实例。USE USE 学生学生APPEND BLANK APPEND BLANK SET INDEX TO JXJ, XS64, XH, FJGSET INDEX TO JXJ, XS64, XH, FJGLIST &LIST &添加的空记录没有反映到新打开的索引文件中添加的空记录没有反映到新打开的索引文件中 REINDEX &REINDEX &更新打开的所有索引文件更新打

50、开的所有索引文件LISTLIST&如图如图2.682.68所示所示注意:索引文件打开的情注意:索引文件打开的情况下,能自动更新。不须况下,能自动更新。不须用用REINDEXREINDEX!7 7、关闭索引文件、关闭索引文件格式格式1 1:CLOSE INDEXESCLOSE INDEXES格式格式2 2:SET INDEX TOSET INDEX TO功能:都是关闭当前工作区的所有索引文件。功能:都是关闭当前工作区的所有索引文件。另:关闭表的同时索引文件也被关闭。另:关闭表的同时索引文件也被关闭。1 1、顺序查找、顺序查找(1 1)顺序查找命令。)顺序查找命令。格式:格式:LOCATE FOR

51、 LOCATE FOR 功能:按顺序搜索表找到满足条件的第一个记录。功能:按顺序搜索表找到满足条件的第一个记录。说明:说明:该命令用于查找未索引或已索引的表文件。该命令用于查找未索引或已索引的表文件。LOCATELOCATE的默认范围是的默认范围是ALLALL,即所有记录。,即所有记录。如果找到满足条件的记录,函数如果找到满足条件的记录,函数FOUND()FOUND()的结果为的结果为.T. .T. ,函数函数EOF()EOF()为为.F. .F. ;否则,;否则,FOUND()FOUND()为为.F. .F. ,EOF()EOF()为为.T. .T. 。(2 2)继续查找命令。)继续查找命令

52、。格式:格式:CONTINUECONTINUE定位到满足定位到满足LOCATELOCATE条件的下一条记录,可重复执行条件的下一条记录,可重复执行CONTINUECONTINUE,直到到达范围边界或文件尾。直到到达范围边界或文件尾。例例2.272.27:用:用LOCATELOCATE、CONTINUECONTINUE顺序查找满足条件的一组记录。顺序查找满足条件的一组记录。USE USE 学生学生LOCATE FOR SUBSTR(LOCATE FOR SUBSTR(学号学号,1,3)=951,1,3)=951?FOUND()?FOUND()DISPLAY &DISPLAY &显示找到的第一个记

53、录显示找到的第一个记录CONTINUE &CONTINUE &继续查找下一条记录继续查找下一条记录DISPLAYDISPLAYCONTINUE &CONTINUE &继续查找下一条记录继续查找下一条记录DISPLAYDISPLAYCONTINUECONTINUE? EOF() &? EOF() &结果为真,说明到了文件尾,查找结束结果为真,说明到了文件尾,查找结束2 2、检索查找、检索查找SEEKSEEK命令:命令:格式:格式:SEEK SEEK 功能:在已打开的索引文件中搜索索引关键字与指定表达式功能:在已打开的索引文件中搜索索引关键字与指定表达式匹配的第一个记录。匹配的第一个记录。说明:说

54、明: :可以是字符型、数值型、逻辑型、日期型:可以是字符型、数值型、逻辑型、日期型等各种类型的表达式。也可以是单个的常量或变量。等各种类型的表达式。也可以是单个的常量或变量。例例2.282.28:用:用SEEKSEEK命令进行索引查找。命令进行索引查找。USE USE 学生学生SET INDEX TO JXJSET INDEX TO JXJSEEK 25SEEK 25&查找奖学金查找奖学金=25=25的记录的记录DISPLAYDISPLAYSKIPSKIP & &查找下一个奖学金查找下一个奖学金=25=25的记录的记录DISPLAYDISPLAYINDEX ON INDEX ON 学号学号+

55、+姓名姓名 TAG XHXMTAG XHXMNAME=NAME=朱伟朱伟 SEEK 953002+NAMESEEK 953002+NAME?FOUND(),RECNO(),EOF() ?FOUND(),RECNO(),EOF() DISPLAYDISPLAYINDEX ON INDEX ON 出生年月出生年月 TO CSNYTO CSNYSEEK 1971-08-03 SEEK 1971-08-03 DISPLAYDISPLAY表的其他操作表的其他操作1 1、计数命令、计数命令格式:格式:COUNT TO COUNT TO FOR FOR 功能:统计当前表中指定范围内满足条件的记录个数。功能:

56、统计当前表中指定范围内满足条件的记录个数。 说明:默认的范围是说明:默认的范围是ALLALL。TO TO :存储计算结果(内存变量或数组):存储计算结果(内存变量或数组)例例2.292.29:统计学生表的学生总人数以及男生、女生的人数。:统计学生表的学生总人数以及男生、女生的人数。USE USE 学生学生COUNT TO ZRSCOUNT TO ZRSCOUNT FOR COUNT FOR 性别性别 TO NSTO NSCOUNT FOR !COUNT FOR !性别性别 TO VSTO VS? ? 总人数总人数=+STR(ZRS,1), =+STR(ZRS,1), 男生人数男生人数=+STR

57、(NS,1), =+STR(NS,1), 女女生人数生人数=+STR(VS,1)=+STR(VS,1)2 2、数值字段求和命令、数值字段求和命令格式:格式:SUM SUM FOR FOR TO TO TO ARRAY TO ARRAY 功能:对当前表的指定数值型字段或全部数值型字段纵向求功能:对当前表的指定数值型字段或全部数值型字段纵向求和。和。说明:默认范围是所有记录说明:默认范围是所有记录(ALL)(ALL)。例例2.302.30:对工资表的基本工资、岗位津贴和实发金额字段求:对工资表的基本工资、岗位津贴和实发金额字段求和和。SET TALK OFF &SET TALK OFF &关闭对话

58、开关,计算结果不马上显示关闭对话开关,计算结果不马上显示USE USE 工资工资SUM SUM 基本工资基本工资, ,岗位津贴岗位津贴, ,实发金额实发金额 TO GZ1,GZ2,GZ3TO GZ1,GZ2,GZ3?GZ1,GZ2,GZ3 &?GZ1,GZ2,GZ3 &用显示命令显示结果用显示命令显示结果SET TALK ON &SET TALK ON &打开对话开关,计算结果马上显示打开对话开关,计算结果马上显示SUM TO ARRAY GZ &SUM TO ARRAY GZ &对所有数值型字段求和,结果存入内对所有数值型字段求和,结果存入内存变量数组存变量数组GZGZLIST MEMORY

59、 LIKE GZLIST MEMORY LIKE GZ* * & &显示内存变量数组显示内存变量数组GZGZ3 3、求平均数命令、求平均数命令格式:格式:AVERAGE AVERAGE FOR FOR TO TO / TO ARRAY / TO ARRAY 功能:计算数值表达式或字段的算术平均值。功能:计算数值表达式或字段的算术平均值。说明:说明:AVERAGEAVERAGE命令各参数的含义与命令各参数的含义与SUMSUM命令相同。命令相同。例例2.312.31:对工资表的基本工资、岗位津贴和实发金额字段求:对工资表的基本工资、岗位津贴和实发金额字段求平均值。平均值。USE USE 工资工资A

60、VERAGE AVERAGE 基本工资基本工资, ,岗位津贴岗位津贴, ,实发金额实发金额 TO PJ1,PJ2,PJ3TO PJ1,PJ2,PJ3? PJ1,PJ2,PJ3? PJ1,PJ2,PJ3例例2.322.32:在工资表的最后追加二条新记录,分别填入每项:在工资表的最后追加二条新记录,分别填入每项工资的总额和平均值。结果如下:工资的总额和平均值。结果如下:USE USE 工资工资COPY TO COPY TO 工资工资1 1USE USE 工资工资1 1SUM TO ARRAY ASUM TO ARRAY AAVERAGE TO ARRAY B AVERAGE TO ARRAY B

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论