第2章数据表的基本操作_第1页
第2章数据表的基本操作_第2页
第2章数据表的基本操作_第3页
第2章数据表的基本操作_第4页
第2章数据表的基本操作_第5页
已阅读5页,还剩110页未读 继续免费阅读

下载本文档

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

文档简介

1、数据库应用基础浙江财经学院 2005-2006 ZUFE, Information School返回基本数据表基本数据表 表结构的建立表结构的建立表结构的显示与修改表结构的显示与修改“插入插入”按钮:在已选定的字段前插入一个新字段。按钮:在已选定的字段前插入一个新字段。“删除删除”按钮:从表中删除选定字段。按钮:从表中删除选定字段。拖动字段名左端的方块可改变字段的顺序。拖动字段名左端的方块可改变字段的顺序。命令方式。命令方式。格式:格式:CREATE CREATE /?/?功能:在当前文件夹下建立一个新数据表文件(功能:在当前文件夹下建立一个新数据表文件(.DBF.DBF)。)。若有备注字段则

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

3、格式: 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功能:复制当前表文件的结构到指定的文件。功能:复制当前表文件的结构到指定的文件。例例2.

4、2 2.2 从已存在的从已存在的“职工职工”表创建表创建“ZG1”ZG1”的表结构,的表结构,“ZG1”ZG1”表的结构与表的结构与“职工职工”表的结构一样。表的结构一样。USE USE 职工职工COPY STRUCTURE TO ZG1COPY STRUCTURE TO ZG1例例2.3 2.3 从已存在的从已存在的“职工职工”表创建表创建“ZG2”ZG2”的表结构,的表结构,“ZG2”ZG2”表的结构只取表的结构只取“职工职工”表的职工号、姓名、性别三个字段。表的职工号、姓名、性别三个字段。COPY STRUCTURE TO ZG2 FIELD COPY STRUCTURE TO ZG2

5、FIELD 职工号,姓名,性别职工号,姓名,性别1 1、表结构的显示、表结构的显示格式格式1 1:DISPLAY STRUCTURE DISPLAY STRUCTURE 格式格式2 2:LIST STRUCTURELIST STRUCTURE注意:注意:DISPLAY STRUCTUREDISPLAY STRUCTURE的显示格式是分页显示,的显示格式是分页显示,而而LIST STRUCTURELIST STRUCTURE的显示格式是连续滚动显示。的显示格式是连续滚动显示。例例2.4 2.4 显示显示“职工职工.DBF”.DBF”表结构,在命令窗口输入下述命令:表结构,在命令窗口输入下述命令:

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

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

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

9、2、表的关闭、表的关闭注意:关闭表的浏览窗口,并未关闭文件。注意:关闭表的浏览窗口,并未关闭文件。(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.5 2.5 给职工表追加记录。给职工表追加记录。USE USE 职工职工 APPEND &APPEND &

12、用全屏幕编辑方式追加记录用全屏幕编辑方式追加记录APPEND BLANK &APPEND BLANK &在表文件末尾追加一个空记录在表文件末尾追加一个空记录(2)(2)插入命令插入命令格式:格式:INSERT BEFOREBLANKINSERT BEFOREBLANK功能:在当前表中插入一个新记录。功能:在当前表中插入一个新记录。说明:说明:BLANKBLANK选项:插入一个空记录。选项:插入一个空记录。BEFOREBEFORE选项:在当前记录前插入一个新记录。选项:在当前记录前插入一个新记录。注意问题:注意问题:记录多时不宜使用记录多时不宜使用 INSERT INSERT 命

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

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

15、存退出。,则不保存退出。4.4.编辑通用字段编辑通用字段(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对象链接到通用型字段对象链接到通用型字段 (被链接的文件应存在)(被链接的文件应存在)“gen”gen”表示尚无数据,表示尚无数据, “ “Gen”Gen”表示已有数据存在。表示已有数据存在。用鼠标双击通用型字段或按用鼠标双击通用型字段或按Ctrl+PgDnCtrl+PgDn键,进入通用型字键,进入通用型字段编辑窗口段编辑窗口; ;选择选择“编辑编辑”“插入对象插入对象”

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

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

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

20、LAST:表示保留上次命令:表示保留上次命令FIELDSFIELDS的选择。的选择。 TITLE TITLE :改写标题栏中的默认表名。:改写标题栏中的默认表名。例例2.72.7:浏览:浏览“职工职工.DBF”.DBF”表中已婚职工记录的职工号表中已婚职工记录的职工号, ,姓名姓名, ,出生日期字段,并给出浏览标题:出生日期字段,并给出浏览标题:“已婚职工基本情况已婚职工基本情况表表”。USE USE 职工职工BROWSE FIELDS BROWSE FIELDS 职工号职工号, ,姓名姓名, ,出生日期出生日期 FOR FOR 婚否婚否; ;TITLE “TITLE “已婚职工基本情况表已婚

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

22、行完毕记录指针定在文件尾。如果要显示备注字段的内容,必须在如果要显示备注字段的内容,必须在LISTLIST命令中指定字段命令中指定字段名名 例例2.8 2.8 用用LISTLIST命令进行显示命令进行显示“职工职工.DBF”.DBF”表记录的各种操作。表记录的各种操作。USE USE 职工职工LIST &LIST &显示所有记录显示所有记录LIST FIELDS LIST FIELDS 职工号职工号, ,姓名姓名,YEAR(,YEAR(出生日期出生日期),),基本工资基本工资, ,基本工基本工资资+100+100GO 1 &GO 1 &记录指针移到第记录指针移到

23、第1 1条记录条记录LIST NEXT 3 FIELDS LIST NEXT 3 FIELDS 职工号职工号, ,姓名姓名, ,性别性别, ,简历简历?RECNO( ) &?RECNO( ) &测试记录指针的位置,结果是测试记录指针的位置,结果是3 3LIST FOR SUBSTR(LIST FOR SUBSTR(职工号职工号,1,4) =”1998” .AND.,1,4) =”1998” .AND.婚婚否否 GO 6 &GO 6 &记录指针移到第记录指针移到第6 6条记录条记录LIST REST &LIST REST &显示第显示第6 6及后续

24、的所有记录及后续的所有记录?EOF() &?EOF() &测试记录指针是否在文件尾,结果为测试记录指针是否在文件尾,结果为.T.T. P47P47(3)(3)分屏显示分屏显示格式:格式:DISPLAY OFF DISPLAY OFF FOR FOR FIELDS FIELDS 功能:分屏显示当前表中的指定数据,功能与功能:分屏显示当前表中的指定数据,功能与LISTLIST相同。相同。说明:说明:在不带所有选项时,在不带所有选项时,DISPLAYDISPLAY的默认范围为当前记录。的默认范围为当前记录。DISPLAYDISPLAY与与LISTLIST的区别有两点:的区别有两点:D

25、ISPLAYDISPLAY的默认范围为当前记录,的默认范围为当前记录,LISTLIST的默认范围为所有记的默认范围为所有记录;录;DISPLAYDISPLAY是分屏显示,是分屏显示,LISTLIST是滚屏显示。是滚屏显示。例例2.9 2.9 分屏显示分屏显示“职工职工.DBF”.DBF”表记录。表记录。USE USE 职工职工 &刚打开的表,记录指针在第刚打开的表,记录指针在第1 1条记录条记录DISPLAYDISPLAYDISPLAY FOR DISPLAY FOR 性别性别=女女 AND AND 出生日期出生日期=1976-01-01=1976-01-01 &注意带选项后是

26、从所有的记录中挑选满足条件的记录注意带选项后是从所有的记录中挑选满足条件的记录表内容的编辑修改表内容的编辑修改1 1、记录指针、记录指针是系统给表文件设计的一种内部标志,用来是系统给表文件设计的一种内部标志,用来指出表的当前记录。指出表的当前记录。记录号:表的每条记录都有一个,记录号是系统记录号:表的每条记录都有一个,记录号是系统按照表记录输入时的顺序自动给加上的,不是用按照表记录输入时的顺序自动给加上的,不是用户设计的字段。户设计的字段。记录指针定位的方法有三种:记录指针定位的方法有三种:绝对定位、相对定位和查找定位。绝对定位、相对定位和查找定位。2.2.绝对移动绝对移动格式格式1 1:GO

27、/GOTO RECORD GO/GOTO RECORD 格式格式2 2:GO/GOTO TOP/BOTTOMGO/GOTO TOP/BOTTOM3.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

28、()GO BOTTOMGO 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

29、、EDITEDIT、CHANGECHANGE命令与上面的菜单类似。命令与上面的菜单类似。重点掌握成批修改命令:重点掌握成批修改命令:REPLACEREPLACE格式:格式:REPLACE REPLACE WITH WITH , , W2 WITH ITH 2 FOR FOR 注意:默认范围是当前记录注意:默认范围是当前记录例例2.11 2.11 将将“职工职工.DBF”.DBF”表复制生成一个副本表复制生成一个副本“ZG1.DBF”,ZG1.DBF”,然后将然后将“ZG1.DBF”ZG1.DBF”表的基本工资字段的数据改为原来的表的基本工资字段的数据改为原来的十倍,并将张军的出生日期改为十倍,

30、并将张军的出生日期改为19781978年年9 9月月8 8日。日。USE USE 职工职工COPY TO ZG1 COPY TO ZG1 USE ZG1USE ZG1REPLACE ALL REPLACE ALL 基本工资基本工资 WITH WITH 基本工资基本工资* *1010LOCATE FOR LOCATE FOR 姓名姓名=张军张军 & &查找姓名为查找姓名为 张军张军 的记录的记录REPLACE REPLACE 出生日期出生日期 WITH 1978-09-08 WITH 1978-09-08 LISTLIST例例2.12 2.12 有一个工资表文件有一个工资表文件“

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

32、能:给要删除的记录打上删除标记“* *” ” 。注意:默认范围是当前记录注意:默认范围是当前记录(NEXT 1)(NEXT 1)例例2.13 2.13 记录的逻辑删除。记录的逻辑删除。USE USE 职工职工COPY TO ZG2COPY TO ZG2USE ZG2USE ZG2DELETE FOR DELETE FOR 基本工资基本工资=2300 =2300 GO 5GO 5DELETEDELETELIST &2LIST &2、5 5、7 7记录被逻辑删除记录被逻辑删除(2) (2) 设置逻辑删除的有效性设置逻辑删除的有效性格式:格式:SET DELETED ON/OFFSE

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

34、SE 商品商品DELETE FOR DELETE FOR 类别类别=饮料饮料 OR OR 类别类别=糖果糖果 SET DELETED OFF &SET DELETED OFF &设置逻辑删除标志无效设置逻辑删除标志无效 LISTLISTRECALL FOR LEFT(RECALL FOR LEFT(商品号商品号,2)=30 ,2)=30 LIST LIST (4)(4)物理删除物理删除格式:格式:PACK PACK 功能:永久删除当前表中标有删除标记的记录。功能:永久删除当前表中标有删除标记的记录。例例2.16 2.16 物理删除操作。物理删除操作。USE USE 职工职工CO

35、PY TO ZG3COPY TO ZG3USE ZG3USE ZG3DELETE FOR DELETE FOR 性别性别=“=“男男”PACK &PACKPACK &PACK后记录号重新编排后记录号重新编排LISTLIST(5)(5)删除所有记录删除所有记录格式:格式:ZAPZAP功能:物理删除所有记录,只留下表的结构。功能:物理删除所有记录,只留下表的结构。例例2.17 2.17 物理删除所有记录。物理删除所有记录。USE ZG3USE ZG3LISTLISTSET SAFETY ON &SET SAFETY ON &设置安全开关为设置安全开关为ONON状态状

36、态ZAP &ZAP &出现确认对话框出现确认对话框表排序与索引表排序与索引格式:格式:SORT TO SORT TO ON ON /A/D/C1 /A/D/C功能:对当前表按功能:对当前表按 1 、 2 依次排序,并将依次排序,并将排序后的记录存放到指定文件中。排序后的记录存放到指定文件中。注意:命令的默认范围是注意:命令的默认范围是ALLALL。例如显示按出生年月从大到小降序排列例如显示按出生年月从大到小降序排列 USE USE 职工职工SORT ON SORT ON 基本工资基本工资, ,出生日期出生日期TO ZGS56TO ZGS56USE ZGS56USE ZGS56L

37、IST LIST SORT ON SORT ON 职工号职工号 TO ZGS1 FIELD TO ZGS1 FIELD 职工号职工号, ,姓名姓名 USE ZGS1USE ZGS1LIST LIST SORTSORT排序的不足:排序的不足:是物理排序,生成与原表一样大小的是物理排序,生成与原表一样大小的.DBF.DBF文件,排序文件,排序的速度慢,占很大的存储空间。的速度慢,占很大的存储空间。1 1、索引文件的概念、索引文件的概念仅由索引关键字和指针(记录号)组成的文件。仅由索引关键字和指针(记录号)组成的文件。2 2、索引文件的分类、索引文件的分类索引文件索引文件单项索引单项索引.IDX.I

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

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

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

41、索引表达式的值升序建立单项索引文件。压缩压缩索引唯一性索引唯一性添加,不关闭原添加,不关闭原索引索引【例【例2.192.19】建立各种单项索引文件】建立各种单项索引文件 。USE USE 职工职工INDEX ON INDEX ON 职工号职工号 TO ZGHTO ZGHINDEX ON INDEX ON 基本工资基本工资 TO JBGZTO JBGZINDEX ON STR(INDEX ON STR(基本工资基本工资,6,2)+DTOS(,6,2)+DTOS(出生日期出生日期) TO ZG56) TO ZG56LIST LIST INDEX ON 8000-INDEX ON 8000-基本工资

42、基本工资 TO JBGZID TO JBGZID (2 2)建立复合索引文件)建立复合索引文件格式:格式: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 FJGTAG XM2 OF FJGINDEX ON INDEX ON 婚否婚否 TAG HF OF FJG UNIQUE TAG HF OF FJG UNIQUE INDEX ON INDEX ON 基本工资基本工资 DESCENDING

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

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

46、结构复合索引文件】打开前面已经建立的非结构复合索引文件FJG.CDXFJG.CDX、单项索引文件单项索引文件ZG56.IDXZG56.IDX、ZGH.IDXZGH.IDX、JBGZ.IDXJBGZ.IDX,并观察主控,并观察主控索引。索引。USE USE 职工职工SET INDEX TO FJG, ZG56, ZGHSET INDEX TO FJG, ZG56, ZGHLIST LIST &记录以物理顺序显示记录以物理顺序显示SET INDEX TO JBGZ ADDITIVE SET INDEX TO JBGZ ADDITIVE &追加打开追加打开JBGZ.IDXJBGZ.I

47、DXLIST LIST &以以JXJ.IDXJXJ.IDX为主控索引为主控索引2 2、确定主控索引文件、确定主控索引文件所谓主控索引是指处理和显示记录使用的索引顺序。所谓主控索引是指处理和显示记录使用的索引顺序。格式:格式:SET ORDER TO SET ORDER TO / TAG/ TAGOFOF功能:重新确定主控索引文件功能:重新确定主控索引文件 :是以:是以USEUSE或或SET INDEXSET INDEX的索引文件列表中出现的的索引文件列表中出现的次序编号的,其顺序为:从次序编号的,其顺序为:从1 1号开始按打开的号开始按打开的.IDX.IDX文件在文件在 中的次序编号;

48、然后是结构复合索引文件,中的次序编号;然后是结构复合索引文件,按其索引标识生成的顺序依次编号;最后是非结构复合索按其索引标识生成的顺序依次编号;最后是非结构复合索引文件,按其索引标识生成顺序依次编号。引文件,按其索引标识生成顺序依次编号。建议使用建议使用 或或 来确定主控。来确定主控。【例【例2.252.25】确定主控索引文件或主控标识】确定主控索引文件或主控标识 。USE USE 职工职工 EXCLUSIVE EXCLUSIVE LIST LIST SET INDEX TO JBGZ, ZG56, ZGH, FJG SET INDEX TO JBGZ, ZG56, ZGH, FJG SET

49、ORDER TO ZG56SET ORDER TO ZG56SET ORDER TO ZGHSET ORDER TO ZGHSET ORDER TO TAG HFSET ORDER TO TAG HFLIST LIST SET ORDER TO &SET ORDER TO &恢复自然顺序恢复自然顺序3 3、索引文件更新、索引文件更新格式:格式:REINDEX REINDEX 功能:更新当前工作区打开的所有索引文件。功能:更新当前工作区打开的所有索引文件。4 4、关闭索引文件、关闭索引文件格式格式1 1:CLOSE INDEXESCLOSE INDEXES格式格式2 2:SET

50、INDEX TOSET INDEX TO功能:都是关闭当前工作区的所有索引文件。功能:都是关闭当前工作区的所有索引文件。另:关闭表的同时索引文件也被关闭。另:关闭表的同时索引文件也被关闭。注意:索引文件打开的情注意:索引文件打开的情况下,能自动更新。不须况下,能自动更新。不须用用REINDEXREINDEX!1 1、顺序查找、顺序查找(1 1)顺序查找命令)顺序查找命令格式:格式:LOCATE FOR LOCATE FOR 功能:按顺序搜索表找到满足条件的第一个记录。功能:按顺序搜索表找到满足条件的第一个记录。该命令用于查找未索引或已索引的表文件。该命令用于查找未索引或已索引的表文件。LOCA

51、TELOCATE的默认范围是的默认范围是ALLALL,即所有记录。,即所有记录。如果找到满足条件的记录,函数如果找到满足条件的记录,函数FOUND()FOUND()的结果为的结果为.T. .T. ,函数函数EOF()EOF()为为.F. .F. ;否则,;否则,FOUND()FOUND()为为.F. .F. ,EOF()EOF()为为.T. .T. 。(2 2)继续查找命令。)继续查找命令。格式:格式:CONTINUECONTINUE定位到满足定位到满足LOCATELOCATE条件的下一条记录,可重复执行条件的下一条记录,可重复执行CONTINUECONTINUE,直到到达范围边界或文件尾。直

52、到到达范围边界或文件尾。【例【例2.272.27】用】用LOCATELOCATE、CONTINUECONTINUE顺序查找满足条件的一组记录顺序查找满足条件的一组记录 。USE USE 职工职工LOCATE FOR YEAR(LOCATE FOR YEAR(出生日期出生日期)=1976 &)=1976 &查找查找19761976年出生的职工年出生的职工?FOUND()?FOUND()DISPLAY &DISPLAY &显示找到的第一个记录显示找到的第一个记录CONTINUE &CONTINUE &继续查找下一条记录继续查找下一条记录DISPLAY

53、DISPLAYCONTINUECONTINUE? EOF() &? EOF() &结果为真,说明到了文件尾,查找结束结果为真,说明到了文件尾,查找结束2 2、索引查找、索引查找格式:格式:SEEK SEEK 功能:在已打开的索引文件中搜索索引关键字与指定表达式功能:在已打开的索引文件中搜索索引关键字与指定表达式匹配的第一个记录。匹配的第一个记录。说明:说明: :可以是字符型、数值型、逻辑型、日期型:可以是字符型、数值型、逻辑型、日期型等各种类型的表达式。也可以是单个的常量或变量。等各种类型的表达式。也可以是单个的常量或变量。【例【例2.282.28】用】用SEEKSEEK命令进

54、行索引查找命令进行索引查找 。USE USE 职工职工SET ORDER TO JBGZSET ORDER TO JBGZSEEK 2100SEEK 2100&查找基本工资查找基本工资=2100=2100的记录的记录 DISPLAYDISPLAYSKIPSKIP & &查找下一个基本工资查找下一个基本工资=2100=2100的记录的记录DISPLAYDISPLAYINDEX ON INDEX ON 职工号职工号+ +姓名姓名 TAG ZGHXM &TAG ZGHXM &按职工号按职工号+ +姓名建立双重索引姓名建立双重索引 NAME=NAME=张军张军

55、SEEK 200001+NAME SEEK 200001+NAME &查找的表达式是字符型的查找的表达式是字符型的?FOUND(),RECNO(),EOF() ?FOUND(),RECNO(),EOF() &找到记录,是第找到记录,是第6 6号记录号记录 DISPLAY DISPLAY INDEX ON INDEX ON 出生日期出生日期 TO CSRQTO CSRQSEEK 1976-12-25 SEEK 1976-12-25 &查找表达式可以是日期型常量或变量查找表达式可以是日期型常量或变量DISPLAY DISPLAY 表的其他操作表的其他操作1 1、计数命令、计

56、数命令格式:格式:COUNT TO COUNT TO FOR FOR 功能:统计当前表中指定范围内满足条件的记录个数。功能:统计当前表中指定范围内满足条件的记录个数。 说明:默认的范围是说明:默认的范围是ALLALL。TO TO :存储计算结果(内存变量或数组):存储计算结果(内存变量或数组)【例【例2.292.29】统计职工表的职工总人数以及男、女职工的人数。】统计职工表的职工总人数以及男、女职工的人数。USE USE 职工职工COUNT TO ZRSCOUNT TO ZRSCOUNT FOR COUNT FOR 性别性别=男男 TO MZG TO MZGCOUNT FOR COUNT FO

57、R 性别性别=女女 TO WZG TO WZG?总人数总人数=+STR(ZRS,2), =+STR(ZRS,2), 男职工人数男职工人数=+STR(MZG,1),;=+STR(MZG,1),; 女职工人数女职工人数=+STR(WZG,1) =+STR(WZG,1) 2 2、数值字段求和命令、数值字段求和命令格式:格式:SUM SUM FOR FOR TO TO TO ARRAY TO ARRAY 功能:对当前表的指定数值型字段或全部数值型字段纵向求和。功能:对当前表的指定数值型字段或全部数值型字段纵向求和。说明:默认范围是所有记录说明:默认范围是所有记录(ALL)(ALL)。【例【例2.302

58、.30】对工资表基本工资、岗位津贴和实发金额字段求和。】对工资表基本工资、岗位津贴和实发金额字段求和。SET TALK OFF &SET TALK OFF &关闭对话开关,计算结果不马上显示关闭对话开关,计算结果不马上显示USE USE 工资工资SUM SUM 基本工资基本工资, ,岗位津贴岗位津贴, ,实发金额实发金额 TO GZ1,GZ2,GZ3TO GZ1,GZ2,GZ3?GZ1,GZ2,GZ3 &?GZ1,GZ2,GZ3 &用显示命令显示结果用显示命令显示结果 SET TALK ON &SET TALK ON &打开对话开关,计算结果马上

59、显示打开对话开关,计算结果马上显示SUM TO ARRAY GZSUM TO ARRAY GZLIST MEMORY LIKE GZLIST MEMORY LIKE GZ* * & &显示内存变量数组显示内存变量数组GZGZ3 3、求平均数命令、求平均数命令格式:格式:AVERAGE AVERAGE FOR FOR TO TO / TO ARRAY / TO ARRAY 功能:计算数值表达式或字段的算术平均值。功能:计算数值表达式或字段的算术平均值。说明:说明:AVERAGEAVERAGE命令各参数的含义与命令各参数的含义与SUMSUM命令相同。命令相同。【例【例2.312.3

60、1】对工资表的基本工资、岗位津贴和实发金额字段】对工资表的基本工资、岗位津贴和实发金额字段求平均值。求平均值。USE USE 工资工资AVERAGE 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 APPEND BLANKAPPEND BLANKREPLACE REPLACE 姓名姓名 WITH WITH 合计合计,基本工资基本工资 WITH A(1), WITH A(1), 岗位津岗位津贴贴 WITH A(2),WITH A(2),其他发款其他发款 WITH A(3),WITH A(3),应发金额应

温馨提示

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

最新文档

评论

0/150

提交评论