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

下载本文档

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

文档简介

1、1第第7章章 表的基本操作表的基本操作 第一部分知识点概要第一部分知识点概要一、工作区的概念及其选择方法一、工作区的概念及其选择方法 二、表的打开方法二、表的打开方法 三、表的关闭方法三、表的关闭方法四、表结构的显示、复制与修改四、表结构的显示、复制与修改 2一、工作区的概念及选择一、工作区的概念及选择1、工作区、工作区(work area)的概念的概念VF将内存分为将内存分为32767个存储区域,为每一张打开的表个存储区域,为每一张打开的表分配一个区域,该区域称为工作区。分配一个区域,该区域称为工作区。工作区工作区1工作区工作区2工作区工作区nstudentscore3提示:提示:任意一个工

2、作区仅能同时保存一张表,若要保存其他表,任意一个工作区仅能同时保存一张表,若要保存其他表,必须释放已保存的表文件。必须释放已保存的表文件。2、工作区的表示、工作区的表示以阿拉伯数字以阿拉伯数字1、2、3依次进行编号或用依次进行编号或用英文字母英文字母a,b,j(不区分大小写不区分大小写)依次表示前依次表示前10个工作区。个工作区。工作区工作区1工作区工作区2工作区工作区101210A或或aB或或bJ或或j43、工作区的选择、工作区的选择命令格式命令格式: select 工作区编号工作区编号5提示:提示:1、任意时刻、任意时刻VF只能对当前选择的工作区(活动工作区)中只能对当前选择的工作区(活动

3、工作区)中的表进行操作,若要对其他工作区中的表进行操作,必须选的表进行操作,若要对其他工作区中的表进行操作,必须选择该表所在的工作区。择该表所在的工作区。2、select 0表示选择当前未用的最小工作区表示选择当前未用的最小工作区sele 1 &选择选择1号工作区号工作区use student &在在1号工作区打号工作区打studentsele b &选择选择2号工作区号工作区use score &在在2号工作区打开号工作区打开scoresele 0 &思考思考:此时选择哪一个工作区此时选择哪一个工作区?use departmentuse teacher

4、 &思考思考:department表是否打开表是否打开sele 2 &此时对哪一个表进行操作、已打开哪些表?此时对哪一个表进行操作、已打开哪些表?6工作区选择实例工作区选择实例二、表的打开二、表的打开1、菜单方式、菜单方式文件菜单文件菜单打开打开选择表位置和名称选择表位置和名称选择打开类选择打开类型(独占或只读)型(独占或只读)2、使用、使用use命令打开表命令打开表格式格式:use 表名表名 in 工作区号工作区号78提示:提示:1、use命令用于直接打开默认路径下的表文件,若命令用于直接打开默认路径下的表文件,若要打开的表不在当前默认路径中,必须在要打开的表不在当前默认路径

5、中,必须在use后写出后写出该表完整路径。该表完整路径。2、use后不跟任何表名,将关闭当前工作区中的表。后不跟任何表名,将关闭当前工作区中的表。3、in 表示在哪个工作区中打开该表,若未选择工表示在哪个工作区中打开该表,若未选择工作区,默认为在作区,默认为在1号工作区中打开。号工作区中打开。三、表的关闭三、表的关闭1、仅关闭当前表、仅关闭当前表:use 作用:仅关闭当前工作区中正在使用的表文件,其作用:仅关闭当前工作区中正在使用的表文件,其他工作区中打开的表不关闭。他工作区中打开的表不关闭。2、关闭已打开所有表文件、关闭已打开所有表文件:close all/close table all作用

6、:关闭所有工作区中已打开的表文件。作用:关闭所有工作区中已打开的表文件。9open database st1 打开数据库打开数据库st1sele 1use student 在在1号工作区中打开号工作区中打开studentuse score in 2 在在2号工作区中打开号工作区中打开scoresele 0 当前选择第几号工作区当前选择第几号工作区use department use 此时打开的文件有哪些?此时打开的文件有哪些?close table all 此时打开的文件有哪些?此时打开的文件有哪些?close all 此时打开的文件有哪些?此时打开的文件有哪些?10表的打开与关闭实例表的打开

7、与关闭实例四、表结构的显示、修改与复制四、表结构的显示、修改与复制1、显示表结构、显示表结构 : list/display structure2、修改表结构、修改表结构:使用菜单命令或使用菜单命令或modify stru命令打命令打开表设计器完成。开表设计器完成。11提示:提示:1、list连屏显示表结构,连屏显示表结构,disp分屏显示表结构。分屏显示表结构。2、显示前,表必须被打开。、显示前,表必须被打开。3、显示时,仅显示当前表的字段属性和路径等结构信息,、显示时,仅显示当前表的字段属性和路径等结构信息,不显示具体表的数据内容。不显示具体表的数据内容。3、复制表结构、复制表结构格式格式:

8、 copy stru to 新表名新表名 fileds 字段名列表字段名列表作用作用: 将当前打开表的结构复制给一个新表将当前打开表的结构复制给一个新表12提示:提示:1、复制前必须打开源表,且命令中的、复制前必须打开源表,且命令中的stru不能省略。不能省略。2、copy stru命令仅仅复制表的结构,不复制表的具体内容和命令仅仅复制表的结构,不复制表的具体内容和字段的有效性规则、索引等。字段的有效性规则、索引等。3、fields子句表示复制时,指定复制的字段,若省略,则复制子句表示复制时,指定复制的字段,若省略,则复制当前表的全部字段。当前表的全部字段。4、保存新结构的表随命令自动生成,无

9、需事先建立。、保存新结构的表随命令自动生成,无需事先建立。 4、复制表记录、复制表记录格式格式: copy to 新表新表 fields 字段列表字段列表 for 条件条件作用作用:将当前表中指定记录复制到新表文件中将当前表中指定记录复制到新表文件中13提示:提示:1、copy执行前必须打开要复制内容的表。执行前必须打开要复制内容的表。2、for子句表示将满足条件的记录复制到新表中,若缺省则子句表示将满足条件的记录复制到新表中,若缺省则表示将全部记录都复制。表示将全部记录都复制。3、新表不用事先建立,随、新表不用事先建立,随copy的执行而生成。的执行而生成。4、fiedls子句复制的具体字段

10、,若缺省则将所有字段都复制子句复制的具体字段,若缺省则将所有字段都复制到新表。到新表。第二部分第二部分 表记录的追加、显示、定位与编辑表记录的追加、显示、定位与编辑内容概要:内容概要:一、表记录的追加方法一、表记录的追加方法二、表记录的显示方法二、表记录的显示方法 三、表的记录号及其含义三、表的记录号及其含义四、表记录的定位四、表记录的定位 五、表记录的编辑五、表记录的编辑14一、表记录的追加一、表记录的追加1、菜单方式、菜单方式n第第1步步:打开要添加记录的表文件打开要添加记录的表文件n第第2步步:选择选择“显示显示”菜单下的菜单下的“浏览浏览”命令命令n第第3步步:选择选择“显示显示”菜单

11、下菜单下“追加方式追加方式”命令命令n第第4步步:逐条输入要添加的记录内容逐条输入要添加的记录内容15提示:提示:添加完毕后,关闭浏览窗口,数据将自动保存。添加完毕后,关闭浏览窗口,数据将自动保存。2、append命令命令格式格式: append blank作用作用:在当前表的在当前表的尾部尾部增加一条新记录。增加一条新记录。16提示:提示:1、blank 若省略,则添加记录时不能保存空白记录。若省略,则添加记录时不能保存空白记录。2、若使用、若使用blank参数,则在当前表的尾部自动增加一条空白参数,则在当前表的尾部自动增加一条空白记录记录。*3、从其他表文件中追加记录、从其他表文件中追加记

12、录格式格式: append from 数据源表名数据源表名 fields 字段名列表字段名列表 for 追加条件追加条件17提示:提示:1、fields 子句用于指定追加的字段,若省略,则将源表中所子句用于指定追加的字段,若省略,则将源表中所有字段有字段(列列)内容追加进当前表。内容追加进当前表。2、for子句指定追加的条件,若省略,则将源表中所有的记子句指定追加的条件,若省略,则将源表中所有的记录录(行行)追加进当前表。追加进当前表。3、被追加的表必须打开,源表无需打开。、被追加的表必须打开,源表无需打开。二、表记录的显示二、表记录的显示1、list 命令显示表记录命令显示表记录命令格式:命

13、令格式:list 范围范围 for条件条件 fields 字段名列表字段名列表off181、list默认将表从首记录连续显示所有记录和所有字段到结果默认将表从首记录连续显示所有记录和所有字段到结果显示区。显示区。2、for设定显示条件,用于指定显示满足条件的记录设定显示条件,用于指定显示满足条件的记录(行行)。3、fields设定显示字段,用于指定显示的字段设定显示字段,用于指定显示的字段(列列)。4、off设定显示时是否显示记录号,默认为省略设定显示时是否显示记录号,默认为省略off,显示所有,显示所有表记录的记录号。表记录的记录号。2、display命令显示表记录命令显示表记录命令格式命令

14、格式: disp 范围范围 for条件条件 fields 字段列表字段列表offall19提示:提示:1、disp默认用于显示指定的当前记录。默认用于显示指定的当前记录。2、disp all显示当前表中所有记录,作用与显示当前表中所有记录,作用与list相同。相同。3、disp命令中的命令中的for、fields及及off用法与用法与list相同。相同。在对表记录进行操作时,通常可以使用范围子句指在对表记录进行操作时,通常可以使用范围子句指定该命令的操作范围,具体为定该命令的操作范围,具体为:nall表示对所有记录进行操作。表示对所有记录进行操作。nrecord n 表示对第表示对第n条记录进

15、行操作。条记录进行操作。nnext n对当前记录开始的连续对当前记录开始的连续n条记录操作。条记录操作。nrest对从当前记录开始的所有剩下记录操作。对从当前记录开始的所有剩下记录操作。20*关于表记录操作范围的说明关于表记录操作范围的说明use studentlist record 5 显示记录号为显示记录号为5的记录的记录clea 清除屏幕内容清除屏幕内容list next 3 从当前从当前5号记录连续显示号记录连续显示5、6、7list rest 显示第显示第7条开始的所有记录条开始的所有记录disp all 显示所有记录显示所有记录list 显示所有记录显示所有记录21实例实例*三、表

16、的记录号及其含义三、表的记录号及其含义记录号记录号(recordno):VF将表中记录按照存储的物理地址将表中记录按照存储的物理地址进行编号,该编号称为表的记录号。进行编号,该编号称为表的记录号。记录号记录号学号学号姓名姓名2012101周涛周涛2012102王庆王庆2012103李明李明2012104苏军苏军地址编号地址编号123456224123关于记录号的几点说明:关于记录号的几点说明:1、表打开时,默认按照记录号从低到高的顺寻依次、表打开时,默认按照记录号从低到高的顺寻依次排列,但是特殊情况下,可以按照其他顺序而不是排列,但是特殊情况下,可以按照其他顺序而不是记录号的顺序排列。记录号的

17、顺序排列。2、记录号不是表的实际字段。、记录号不是表的实际字段。23四、表记录的定位四、表记录的定位1、表指针及其相关概念、表指针及其相关概念n表指针表指针VFP为每个打开的表设置了一个存储单元,用于存为每个打开的表设置了一个存储单元,用于存放当前记录的记录号,该单元称为表的指针。放当前记录的记录号,该单元称为表的指针。249 5n表的逻辑结构表的逻辑结构表开始标记表开始标记 bof (begin of file) 不占表记录空间不占表记录空间记录号记录号姓名姓名学号学号性别性别团员否团员否2张红张红200201女女.t.3李军李军200203男男1赵晓红赵晓红200209女女.t.表结束标记

18、表结束标记 eof(end of file)占表记录空间,相当于一条表记录占表记录空间,相当于一条表记录25neof()与与bof()函数函数1、bof与与eof用于判定表开始或结束,值只能是用于判定表开始或结束,值只能是.t.或或.f.2、bof函数用于测试表指针是否指向表开始标记,表函数用于测试表指针是否指向表开始标记,表指针仅在指向表开始标记时指针仅在指向表开始标记时bof为为.t.,当指针指向表中,当指针指向表中任意记录(包括首记录)时,任意记录(包括首记录)时,bof均为均为.f.。3、eof函数用于测试表指针是否指向表结束标记,表函数用于测试表指针是否指向表结束标记,表指针仅在指向

19、表结束标记时指针仅在指向表结束标记时eof为为.t.,当指针指向表中,当指针指向表中任意记录任意记录(包括尾记录包括尾记录)时,时,eof均为均为.f.。4、若表为空表,则、若表为空表,则bof与与eof均为均为.t.。262、表指针的绝对移动、表指针的绝对移动格式格式: go n/top/bottom (n为正整数)为正整数)27提示:提示:1、go n 表示指向记录号为表示指向记录号为n的记录。的记录。2、go top:指向首记录指向首记录(不一定是第不一定是第1号记录号记录)。3、bottom:指向尾记录指向尾记录(不一定是最大记录号记录不一定是最大记录号记录)4、recno()函数返回

20、当前指针所指记录的记录号。函数返回当前指针所指记录的记录号。5、reccount()用于返回当前表中记录总数。用于返回当前表中记录总数。3、表指针的相对移动、表指针的相对移动格式格式: skip n (n为整数)为整数)28提示:提示:1、表记录指针从当前记录向上或向下移、表记录指针从当前记录向上或向下移n条条2、若、若n为正整数,表示将指针向下移动为正整数,表示将指针向下移动n条。条。3、若、若n为负整数,表示将指针向上移动为负整数,表示将指针向上移动n条。条。4、若、若n缺省,则默认为缺省,则默认为1,指针向下移动,指针向下移动1条。条。5、若、若n=0,则指针不移动,则指针不移动6、打开

21、一个表时,指针默认指向第一条记录。、打开一个表时,指针默认指向第一条记录。记录号记录号姓名姓名学号学号性别性别2江涛江涛20100101男男4王勇王勇20100104男男1吴丽丽吴丽丽20100102女女3段鹏段鹏20100103男男5秦天秦天20100105男男29go top?recno(),bof(),eof()skip 2?recno(),reccount()skip -1?recno()go bottom?recno(),eof()skip?recno(),eof(),bof()已知表已知表st当前顺序如下,请当前顺序如下,请分析下列命令的执行结果分析下列命令的执行结果2,.F.,.

22、F.1,545,.F.6,.T.,.F.五、表记录的编辑五、表记录的编辑1、表记录的浏览、表记录的浏览n菜单方式:打开表文件菜单方式:打开表文件“显示显示”菜单菜单“浏览浏览”命令命令 n命令方式:命令方式: browse fields 字段名列表字段名列表for 件件nomodify2、表记录的编辑、表记录的编辑n菜单方式打开表菜单方式打开表显示菜单显示菜单浏览浏览在浏览窗口中选择要在浏览窗口中选择要修改的记录进行编辑修改的记录进行编辑n命令方式:命令方式:edit n作用作用: 对当前表中记录号为对当前表中记录号为n的记录进行编辑的记录进行编辑303、表记录的更新、表记录的更新格式格式:

23、replace all 更新字段更新字段 with 更新值更新值作用作用:更新当前表中指定字段的值更新当前表中指定字段的值31提示:提示:1、all表示从首记录开始对表中所有记录依次进行更新;若表示从首记录开始对表中所有记录依次进行更新;若缺省,表示仅对当前指针指向的记录更新。缺省,表示仅对当前指针指向的记录更新。2、with 不能用不能用= 代替代替3、更新字段和更新值的类型必须保持一致。、更新字段和更新值的类型必须保持一致。4、replace all执行后,记录指向指向表尾。执行后,记录指向指向表尾。4、插入记录、插入记录格式格式: insert blankbefore作用作用:在当前记录

24、的指定位置插入一条新记录。在当前记录的指定位置插入一条新记录。32提示:提示:1、before表示在当前记录之前插入一条新记录,若缺省,表示在当前记录之前插入一条新记录,若缺省,表示在当前记录之后插入一条新记录。表示在当前记录之后插入一条新记录。2、blank表示允许插入空白记录,缺省表示不允许插入。表示允许插入空白记录,缺省表示不允许插入。3、insert 可以在任意位置插入新记录,可以在任意位置插入新记录,append命令只能在命令只能在表尾增加新记录。表尾增加新记录。5、表记录的删除与恢复、表记录的删除与恢复n逻辑删除逻辑删除格式格式:dele for 条件条件33提示:提示:1、for

25、 表示将所有满足条件的记录逻辑删除,缺省时默认仅逻表示将所有满足条件的记录逻辑删除,缺省时默认仅逻辑删除当前指针指向的记录。辑删除当前指针指向的记录。2、逻辑删除仅将选择记录打上删除标记,表记录仍在表中实际、逻辑删除仅将选择记录打上删除标记,表记录仍在表中实际存在。存在。3、凡逻辑删除的记录,显示时在其前面加上、凡逻辑删除的记录,显示时在其前面加上*号以示区别。号以示区别。n表记录的恢复表记录的恢复格式格式:recall for 条件条件all作用作用:恢复已逻辑删除的记录恢复已逻辑删除的记录34提示:提示:1、for表示将满足条件的记录恢复,缺省时默认只恢复当前表示将满足条件的记录恢复,缺省

26、时默认只恢复当前记录。记录。2、all表示将所有已逻辑删除的记录恢复,缺省时仅对当前表示将所有已逻辑删除的记录恢复,缺省时仅对当前记录恢复。记录恢复。n表记录的物理删除表记录的物理删除格式格式: pack作用作用:将所有已逻辑删除的记录从表中删除。将所有已逻辑删除的记录从表中删除。n清空表清空表格式格式:zap作用作用:无论表中记录是否进行了逻辑删除,都将所有无论表中记录是否进行了逻辑删除,都将所有记录从表中删除,删除后保留表及其结构。记录从表中删除,删除后保留表及其结构。35命令格式命令格式作用作用append blank在表尾增加一条空白记录在表尾增加一条空白记录append from 源

27、表源表从源表中添加记录到当前表从源表中添加记录到当前表copy to 新表新表将当前表数据复制到新表中将当前表数据复制到新表中list/display显示表中全部显示表中全部/当前记录当前记录insert before在当前记录指定位置插入新记录在当前记录指定位置插入新记录go n/top/bottom指向记录号为指向记录号为n的记录的记录skip n从当前记录向上从当前记录向上/下移动下移动n条条replace all 字段字段更新表中指定字段更新表中指定字段dele/recall/pack/zap逻辑删除逻辑删除/恢复恢复/物理删除物理删除/清空表清空表browse/edit n以浏览窗口

28、浏览表以浏览窗口浏览表 /编辑编辑n号记录号记录36表记录的基本操作命令对比表记录的基本操作命令对比第三部分第三部分 表的排序、索引、查找与统计表的排序、索引、查找与统计内容概要内容概要一、排序的概念及方法一、排序的概念及方法二、索引的概念、作用、类型及建立方法二、索引的概念、作用、类型及建立方法三、不同索引文件的建立方法三、不同索引文件的建立方法 四、索引的打开、生效索引的设置四、索引的打开、生效索引的设置 五、表记录的查询五、表记录的查询 六、表记录的统计六、表记录的统计 37表打开后默认按照记录号顺序排列,但根据用表打开后默认按照记录号顺序排列,但根据用户需要可对表顺序进行重新排列,主要

29、使用两种方法户需要可对表顺序进行重新排列,主要使用两种方法:排序和索引排序和索引38原始顺序原始顺序(记录号记录号)新顺序新顺序(学号学号)索引或排序索引或排序一、排序的概念及方法一、排序的概念及方法1、概念:将原表顺序重新排列后保存至、概念:将原表顺序重新排列后保存至一个新表,一个新表,但但不改变原表的顺序和结构。不改变原表的顺序和结构。2、命令格式、命令格式 : sort on 排序字段列表排序字段列表 /a/d to 新表名新表名 for 筛选条件筛选条件 fields 新表字段名列表新表字段名列表39pon 子句指定排序的依据,一般为表的某个字段。若为多个字子句指定排序的依据,一般为表

30、的某个字段。若为多个字段,则先按照第一个字段排序,第一个字段值相同的记录再依段,则先按照第一个字段排序,第一个字段值相同的记录再依次第二字段、第三字段次第二字段、第三字段排序。排序。pa表示按照指定字段的升序排序,表示按照指定字段的升序排序,d表示按照降序排列;省略表示按照降序排列;省略a或或d时,默认按照升序排列。时,默认按照升序排列。二、索引及其相关概念二、索引及其相关概念1、索引与索引文件、索引与索引文件:将记录按照指定顺序进行排列,将记录按照指定顺序进行排列,该顺序称为表的一个索引,保存该索引的文件称为该顺序称为表的一个索引,保存该索引的文件称为索引文件。索引文件。40p索引是一个逻辑

31、顺序,必须通过索引文件来保存。索引是一个逻辑顺序,必须通过索引文件来保存。p索引文件仅保存表的排列顺序不保存表的具体数据索引文件仅保存表的排列顺序不保存表的具体数据p一个索引文件可同时保存多个索引一个索引文件可同时保存多个索引(顺序顺序)。p索引生效后将临时改变原表顺序,但不会生成新表,关闭索索引生效后将临时改变原表顺序,但不会生成新表,关闭索引后,表将恢复初始顺序。引后,表将恢复初始顺序。索引索引排序排序是生成新表是生成新表不生成不生成生成生成改变原表顺序改变原表顺序暂时改变,关闭索暂时改变,关闭索引后表将恢复引后表将恢复不改变不改变生成文件类型生成文件类型索引文件索引文件表文件表文件.db

32、f生成文件内容生成文件内容逻辑顺序,无具体逻辑顺序,无具体记录数据记录数据具体记录数据具体记录数据和新顺序和新顺序41索引与排序的区别索引与排序的区别2、索引的类型、索引的类型1)主索引主索引(primary key):索引字段值不能重复或为空,一个表只索引字段值不能重复或为空,一个表只能建立能建立一个一个主索引,且只有主索引,且只有数据库表数据库表才能建立主索引。才能建立主索引。2)候选索引候选索引(candidate index):索引字段值不能重复或为空,但索引字段值不能重复或为空,但一个表可以建立多个候选索引、自由表也可以建立候选索引。一个表可以建立多个候选索引、自由表也可以建立候选索

33、引。3)唯一索引唯一索引(unique index):索引字段值可重复,但对重复值,索引字段值可重复,但对重复值,只保留第一次重复出现的记录,一个表可以建立多个唯一索引,只保留第一次重复出现的记录,一个表可以建立多个唯一索引,自由表也可以建立唯一索引。自由表也可以建立唯一索引。4)普通索引普通索引(regular index):索引字段值可重复,重复值记录都索引字段值可重复,重复值记录都保留,一个表可建立多个普通索引,自由表也可建立普通索引。保留,一个表可建立多个普通索引,自由表也可建立普通索引。423、使用表设计器建立表的索引、使用表设计器建立表的索引步骤步骤:打开表打开表选择显示菜单下的表

34、设计器选择显示菜单下的表设计器选择表设选择表设计器的索引选项卡计器的索引选项卡根据需要建立索引根据需要建立索引43提示:索引标识卡的索引名指新建的索引名称,表达式指建立索索引标识卡的索引名指新建的索引名称,表达式指建立索引的字段或字段表达式。引的字段或字段表达式。44索索引引文文件件 单一索引单一索引.idx 特点特点:一个索引文件只保存一个索引一个索引文件只保存一个索引(顺序顺序)复合索引复合索引特点特点:一个索引文件可保存多个索引一个索引文件可保存多个索引(顺序顺序)结构复合索引结构复合索引.cdx非结构复合索引非结构复合索引.cdx4、索引文件的分类、索引文件的分类说明:说明:用表设计器

35、建立的索引均为结构复合索引文件。用表设计器建立的索引均为结构复合索引文件。三、索引文件的建立方法三、索引文件的建立方法1、单一索引、单一索引命令格式:命令格式: index on 字段表达式字段表达式 to 索引名索引名45提示:p单一索引文件只能保存一个索引,且索引名和索引文件单一索引文件只能保存一个索引,且索引名和索引文件同名。同名。p单一索引文件只有升序,没有降序。单一索引文件只有升序,没有降序。2、结构复合索引、结构复合索引格式:格式:index on字段表达式字段表达式 tag 索引索引 ASCE/DESC46提示:p结构复合索引文件的主文件名和表同名,后缀名为结构复合索引文件的主文

36、件名和表同名,后缀名为.cdx。p一个表文件只能建立一个结构复合索引文件,但一个结构一个表文件只能建立一个结构复合索引文件,但一个结构复合索引文件可以同时保存多个索引。复合索引文件可以同时保存多个索引。p结构复合索引文件随表的打开而自动打开。结构复合索引文件随表的打开而自动打开。pASCE表示按照升序排列,表示按照升序排列,DESC按照降序排列,缺省时默按照降序排列,缺省时默认按照升序排列。认按照升序排列。实例:对对student表建立结构复合索引,索引字段分别为姓名、学号,表建立结构复合索引,索引字段分别为姓名、学号,索引名分别索引名分别xm、xh,其中姓名为降序,学号为升序。,其中姓名为降

37、序,学号为升序。索引文件索引文件Student.cdx索引标识索引标识xm索引标识索引标识xh保存姓名的降序保存姓名的降序保存学号的升序保存学号的升序47*3、非结构复合索引、非结构复合索引命令格式:命令格式:index on 字段表达式字段表达式 tag 索引标识索引标识 of 索引文件名索引文件名 ASC/DESC48p一个表可建立多个非结构复合索引文件,索引文件后缀名一个表可建立多个非结构复合索引文件,索引文件后缀名为为.cdx,且一个非结构复合索引文件可以保存多个索引。,且一个非结构复合索引文件可以保存多个索引。ptag指定当前建立的索引名,指定当前建立的索引名,of指定保存索引的非结

38、构复合指定保存索引的非结构复合索引文件名。索引文件名。pASC和和DESC的用法同非结构复合索引。的用法同非结构复合索引。p非结构复合索引不随表的打开而自动打开,关闭表后必须非结构复合索引不随表的打开而自动打开,关闭表后必须用命令打开。用命令打开。实例:对对student表建立非结构复合索引,索引字段分别为姓名、入表建立非结构复合索引,索引字段分别为姓名、入学成绩,索引名分别学成绩,索引名分别xm、cj,索引文件名为,索引文件名为sy,其中姓名为,其中姓名为降序,入学成绩为升序。降序,入学成绩为升序。索引文件索引文件sy.cdx索引标识索引标识xm索引标识索引标识cj保存姓名的降序保存姓名的降

39、序保存入学成绩的升序保存入学成绩的升序49单一索引单一索引结构复合索引结构复合索引非结构复合索引非结构复合索引后缀名后缀名idxcdxcdx命名命名用户定义用户定义和表同名和表同名用户定义用户定义索引数目索引数目1个个多个多个多个多个建立个数建立个数多个多个1个个多个多个建立方式建立方式Index .toIndex.tag.Index.tag.of打开方式打开方式用户打开用户打开随表打开随表打开用户打开用户打开50常用索引文件区别索引与索引文件的比较索引与索引文件的比较p索引表示一种逻辑顺序,主要通过表设计器来创索引表示一种逻辑顺序,主要通过表设计器来创建,必须通过索引文件来保存。建,必须通过

40、索引文件来保存。p使用表设计器创建的各类索引均以结构复合索引使用表设计器创建的各类索引均以结构复合索引文件形式保存。文件形式保存。p索引文件是保存各种索引的文件,主要通过索引文件是保存各种索引的文件,主要通过index命令创建,使用命令创建,使用index命令创建的索引文件中默认的命令创建的索引文件中默认的索引类型均为普通索引。索引类型均为普通索引。51四、索引文件的打开、生效索引的设置四、索引文件的打开、生效索引的设置关闭表重新打开表,必须打开索引文件并指关闭表重新打开表,必须打开索引文件并指定其中的生效索引,否则建立的索引不能生效。定其中的生效索引,否则建立的索引不能生效。1、打开索引文件

41、:、打开索引文件:set index to 索引文件名列表索引文件名列表52p同时打开多个索引文件时必须以逗号隔开同时打开多个索引文件时必须以逗号隔开p索引文件名列表中只能是索引文件名,不能是索引名。索引文件名列表中只能是索引文件名,不能是索引名。use studentindex on 入学成绩入学成绩 to cj 何种索引?名为?何种索引?名为?index on 姓名姓名 tag xmindex on 性别性别 tag xb of syindex on 出生日期出生日期 tag cs of sy 何种索引?何种索引?set index to sy,cj 打开两个索引文件打开两个索引文件set

42、 index to cj,xm 该命令是否正确该命令是否正确?53索引文件打开实例索引文件打开实例3、设置生效索引、设置生效索引命令格式命令格式 :set order to 索引标识索引标识54提示:p若对表建立索引后,未关闭表,则当前建立的索引自动生若对表建立索引后,未关闭表,则当前建立的索引自动生效;若对表先后建立多个索引,在表未关闭时,最后建立的效;若对表先后建立多个索引,在表未关闭时,最后建立的索引自动生效。索引自动生效。p若表建立了多个索引,任意时刻只能设置一个生效索引若表建立了多个索引,任意时刻只能设置一个生效索引p设置生效索引前,必须打开其所在的索引文件。设置生效索引前,必须打开

43、其所在的索引文件。p该命令后只能指定生效的索引标识而不是索引文件。该命令后只能指定生效的索引标识而不是索引文件。use studentindex on 学号学号 to xh 建立单一索引建立单一索引xhindex on 姓名姓名 tag xmindex on 性别性别 tag xb 建立结构复合索引建立结构复合索引studentindex on 入学成绩入学成绩 tag cj of syindex on 出生日期出生日期 tag cs of sy 建立非结构复合索引建立非结构复合索引 use 当前生效索引为当前生效索引为?use student 此时打开的索引文件是?此时打开的索引文件是?se

44、t order to xm 设置设置xm为生效索引为生效索引set index to sy 打开索引文件打开索引文件syset order to cj 设置设置cj为生效索引为生效索引set order to sy 该命令是否正确?该命令是否正确?set index to xh set order to xh 设置设置xh为生效索引为生效索引55索引的打开与生效索引设置实例五、表的查询五、表的查询1、顺序查询、顺序查询命令格式:命令格式:locate for 查询条件查询条件56plocate将从上往下顺序查询表中满足查询条件的第一条记录,将从上往下顺序查询表中满足查询条件的第一条记录,并将指

45、针指向该记录;若没有满足条件的记录,则表指针指并将指针指向该记录;若没有满足条件的记录,则表指针指向表结束标记。向表结束标记。p执行执行locate命令时,无论表指针在何位置,都将从表中当前命令时,无论表指针在何位置,都将从表中当前首记录开始查找。首记录开始查找。peof()和和found()通常用于判断是否找到,若通常用于判断是否找到,若eof()=.t.或或found()=.f.,则指针指向表结束位置,未找到;否则查询到,则指针指向表结束位置,未找到;否则查询到满足条件的记录,并指向该记录。满足条件的记录,并指向该记录。p若存在多条满足条件的记录,则只会查询出第一条满足条若存在多条满足条件

46、的记录,则只会查询出第一条满足条件的记录。件的记录。在在student表中查询名为表中查询名为“李军李军”的同学的同学set exact on 该命令作用是什么?该命令作用是什么?use studentlocate for 姓名姓名=“李军李军”disp 可否用可否用list 代替代替disp?eof(),found() 函数返回值分别为?函数返回值分别为?查询查询student表中姓表中姓“张张”的同学的同学set exact off 该命令作用是什么?该命令作用是什么?loca for 姓名姓名=“张张” disp 若有多个张姓同学,是否能全部显示若有多个张姓同学,是否能全部显示?572、

47、继续查询、继续查询命令格式:命令格式:continue作用:作用:从当前记录开始再重复执行一次从当前记录开始再重复执行一次locate查询。查询。58提示:continue前必须有前必须有locate 命令,不能单独使用命令,不能单独使用实例:查询查询student表中所有张姓同学表中所有张姓同学3、索引快速查询、索引快速查询1)find命令命令格式格式: find 查询数据查询数据59提示:1、查找指定字段值等于查询数据的第一条记录。、查找指定字段值等于查询数据的第一条记录。2、查找前,必须对查询字段建立索引。、查找前,必须对查询字段建立索引。3、查找字段可为字符型或数值型。、查找字段可为字

48、符型或数值型。4、若为字符型变量,必须对其进行宏替换;若是字符型常量,、若为字符型变量,必须对其进行宏替换;若是字符型常量,可以省略定界符,但若字符型常量首字符为空格,则必须使用可以省略定界符,但若字符型常量首字符为空格,则必须使用定界符。定界符。利用利用find命令查找命令查找student表男生和女生记录表男生和女生记录use studentindex on 性别性别 to xbfind 男男 字符型常量不加定界符字符型常量不加定界符该命令相当于该命令相当于locate for 性别性别=“男男”dispsex=“女女”find &sex 字符型变量必须宏替换,字符型变量必须宏替换

49、,&sex=女女dispskipdisp 此时显示内容为什么为下一条女生记录?此时显示内容为什么为下一条女生记录?602)seek命令命令命令格式:命令格式:seek 查询值查询值61提示:1、基本作用类似、基本作用类似find,即查询表中指定字段值等于给定值的,即查询表中指定字段值等于给定值的第一条记录。第一条记录。2、查找前必须对要查询的字段建立索引。、查找前必须对要查询的字段建立索引。3、查询值可以使字符型、数值型、日期型。、查询值可以使字符型、数值型、日期型。4、查询值为字符型常量,必须加定界符;为字符型变量,不、查询值为字符型常量,必须加定界符;为字符型变量,不使用宏替换;为

50、日期型,必须使用日期型格式。使用宏替换;为日期型,必须使用日期型格式。利用利用seek命令对命令对student表进行查询表进行查询use studentindex on 姓名姓名 to xmseek “张红张红” 等价于等价于find 张红张红dispxm=“张红张红”seek xm 字符型变量不宏替换字符型变量不宏替换index on 出生日期出生日期 to rqseek 1983/08/17disp62Findseek是否对字段建立索是否对字段建立索引引是是是是查找类型查找类型字符型、数值型字符型、数值型字符型、数值型字符型、数值型日期型日期型是否宏替换是否宏替换是是否否是否加定界符是否

51、加定界符否否是是可否查找日期可否查找日期否否是是63Find与与seek命令比较命令比较六、表的统计六、表的统计1、计数命令、计数命令格式格式: count for 条件条件 to 变量名变量名64提示:pcount命令统计表中满足条件的记录命令统计表中满足条件的记录(行行)个数,并将结果保个数,并将结果保存至存至to后指定变量中。后指定变量中。pfor 子句用于指定统计记录满足的条件,缺省时默认为对表子句用于指定统计记录满足的条件,缺省时默认为对表中所有记录进行计数。中所有记录进行计数。实例:分别统计分别统计student表中所有男生人数和团员数表中所有男生人数和团员数2、求和命令、求和命令

52、格式格式:sum 求和字段名列表求和字段名列表 for条件条件 to 变量名变量名65提示:psum命令用于对所有满足条件的记录中指定的字段按纵向求命令用于对所有满足条件的记录中指定的字段按纵向求算术和,并将求和结果保存至指定变量。算术和,并将求和结果保存至指定变量。p求和字段只能是数值型字段,若对多个字段求和,则必须求和字段只能是数值型字段,若对多个字段求和,则必须用逗号隔开。用逗号隔开。3、求平均值、求平均值average 求平均值字段列表求平均值字段列表 to 变量名变量名 for 条件条件66提示:用法类似用法类似sum命令,作用为求平均值。命令,作用为求平均值。实例:统计统计stud

53、ent表中所有男生的入学成绩平均值。表中所有男生的入学成绩平均值。4、汇总、汇总格式格式:total on 分组字段分组字段 fields 汇总字段汇总字段 to 新表新表67提示:ptotal 命令首先将记录根据分组字段分成若干组,再对每组命令首先将记录根据分组字段分成若干组,再对每组中指定的汇总字段按纵向求和。中指定的汇总字段按纵向求和。pto 子句表示将汇总结果保存至一个新表中。子句表示将汇总结果保存至一个新表中。p汇总前,必须对分组字段建立索引。汇总前,必须对分组字段建立索引。pfields子句指定对求和的字段,只能是数值型,缺省时默认子句指定对求和的字段,只能是数值型,缺省时默认对表

54、中所有数值型字段求和。对表中所有数值型字段求和。p汇总后,新表中仅根据分组生成不同的记录,一般情况下汇总后,新表中仅根据分组生成不同的记录,一般情况下和原表的记录不相同。和原表的记录不相同。分别计算分别计算student表中男生和女生的入学成绩总表中男生和女生的入学成绩总和,并将结果保存至新表文件和,并将结果保存至新表文件st1中中use studentindex on 性别性别 to xb 对性别字段建立索引对性别字段建立索引total on 性别性别 fiedls 入学成绩入学成绩 to st1根据性别将所有学生分为两组,再分别计算每组入根据性别将所有学生分为两组,再分别计算每组入学成绩字

55、段的总和,并将结果保存至新表文件学成绩字段的总和,并将结果保存至新表文件st1use st1 打开保存统计结果的新表打开保存统计结果的新表st1list fiedls 性别性别,入学成绩入学成绩6869Index on 性别性别total on 性别 fields 入学成绩 to st1第四部分第四部分 多表操作多表操作内容概要:内容概要:1、工作区互访、工作区互访 2、表间关系的分类、表间关系的分类3、表间临时关系的建立及使用、表间临时关系的建立及使用 4、表间永久关系的建立与参照完整性设置、表间永久关系的建立与参照完整性设置 5、多表连接与数据更新、多表连接与数据更新 70一、工作区互访一

56、、工作区互访关于工作区互访的说明:关于工作区互访的说明:1、默认情况下,用户只能访问当前工作区中表的数、默认情况下,用户只能访问当前工作区中表的数据;若要同时访问其他工作区中表的数据,必须使据;若要同时访问其他工作区中表的数据,必须使用工作区互访。互访格式为:用工作区互访。互访格式为: 受访工作表名(工作区编号)受访工作表名(工作区编号). 受访字段受访字段2、工作区互访时,若各表间未建立任何关联,则各、工作区互访时,若各表间未建立任何关联,则各表的指针移动互不影响。表的指针移动互不影响。 7172对应数目一对一一对多多对多 有效性临时关系永久关系表间关系二、表间关系的分类二、表间关系的分类三

57、、表间临时关系的建立三、表间临时关系的建立1、主表与子表的概念、主表与子表的概念两表通过共同字段连接,可建立一个临时的逻辑关两表通过共同字段连接,可建立一个临时的逻辑关系,关闭表后该关系将自动撤销。在该关系中,若系,关闭表后该关系将自动撤销。在该关系中,若A表指针的移动可以影响表指针的移动可以影响B表指针的自动跳转,则表指针的自动跳转,则A表称为表称为 主表(父表)主表(父表),B表称为表称为子表。子表。7374主表主表(父表父表)子表子表2、临时关系的建立、临时关系的建立set relation to 共同字段共同字段 into 工作区号工作区号addip建立表间关系前,必须使用建立表间关系

58、前,必须使用index on 命令对子表中的共同命令对子表中的共同字段建立索引。字段建立索引。pinto子句指定子表所在的工作区编号或子表名,通常以英子句指定子表所在的工作区编号或子表名,通常以英文字母表示工作区编号。文字母表示工作区编号。paddi参数表示建立当前表间关系时,不撤销先前建立的表参数表示建立当前表间关系时,不撤销先前建立的表间关系;若无间关系;若无addi参数则表示建立当前关系时,自动撤销参数则表示建立当前关系时,自动撤销以前建立的所有表间关系。以前建立的所有表间关系。75Set relation to 命令命令 建立临时关系的一般步骤建立临时关系的一般步骤1、确定主表与子表、

59、两表的共同字段。、确定主表与子表、两表的共同字段。说明说明一般将查询、排序等字段所在的表作为主表。一般将查询、排序等字段所在的表作为主表。2、选择一个工作区,并打开子表,对子表中的共同、选择一个工作区,并打开子表,对子表中的共同字段建立索引字段建立索引(单一索引或复合索引单一索引或复合索引)。3、在另一个工作区中打开主表,并使用、在另一个工作区中打开主表,并使用set relationto命令对两表建立表间临时关系。命令对两表建立表间临时关系。76例例1:查询并输出查询并输出student与与score中所有张姓同学的学中所有张姓同学的学号、姓名、性别和计算机成绩号、姓名、性别和计算机成绩例例

60、2:显示所有计算机成绩在显示所有计算机成绩在70分以上同学的学号、分以上同学的学号、姓名、性别和计算机成绩姓名、性别和计算机成绩例例3:按入学成绩降序显示所有同学的学号、姓名、按入学成绩降序显示所有同学的学号、姓名、性入学成绩和计算机成绩性入学成绩和计算机成绩77*3、使用数据工作期窗口创建临时关系、使用数据工作期窗口创建临时关系利用菜单栏利用菜单栏”窗口窗口”菜单下的菜单下的”数据工作期数据工作期”打打开子表,并对子表的共同字段建立索引。开子表,并对子表的共同字段建立索引。利用数据工作期打开主表。利用数据工作期打开主表。选择主表后,单击选择主表后,单击“关系关系”命令,选择子表,并命令,选择子表,并在表达式生成器中写入两表建立

温馨提示

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

评论

0/150

提交评论