重要资料VFP表操作索引、统计、关联、连接等.doc

上传人:s9****2 文档编号:551041644 上传时间:2023-04-23 格式:DOC 页数:28 大小:1.55MB
返回 下载 相关 举报
重要资料VFP表操作索引、统计、关联、连接等.doc_第1页
第1页 / 共28页
重要资料VFP表操作索引、统计、关联、连接等.doc_第2页
第2页 / 共28页
重要资料VFP表操作索引、统计、关联、连接等.doc_第3页
第3页 / 共28页
重要资料VFP表操作索引、统计、关联、连接等.doc_第4页
第4页 / 共28页
重要资料VFP表操作索引、统计、关联、连接等.doc_第5页
第5页 / 共28页
点击查看更多>>
资源描述

《重要资料VFP表操作索引、统计、关联、连接等.doc》由会员分享,可在线阅读,更多相关《重要资料VFP表操作索引、统计、关联、连接等.doc(28页珍藏版)》请在金锄头文库上搜索。

1、 查询、统计和多表操作 查询、统计和多表操作表文件中记录的顺序通常是人们在输入数据时按输入的先后次序存储的,并以记录号表示,这个顺序只反映了存放数据的先后顺序。但在数据处理实际应用中,由于数据库十分庞大,为了高效方便地处理数据,常常需要对记录位置进行重新整理,并按某种指定的顺序对表记录进行处理。例如,对学生成绩表按学号为序显示输出记录,以便查找;或按总分高低为序输出记录,以便进行比较等等。对记录位置进行重新整理通常有排序和索引两种方法。排序是对表文件进行物理位置的整理;索引是对表文件进行逻辑位置的整理。一、 排 序表文件的排序操作就是根据表的某个关键字或关键字表达式重新排列表记录的位置。执行排

2、序操作后将生成一个新的表文件(称为:排序文件)。新文件的结构和数据可以与源文件完全相同,也可以只取源文件的部分字段。新文件不改变源文件内容和记录顺序。【命令】 SORTTOON/A /D /C , /A /D /C ASCENDING|DESCENDINGFOR|WHILEFIELDS| FIELDS LIKE|FIELDS EXCEPT【功能】 对当前表中指定范围内、满足条件的记录按指定字段升序或降序重新排序,并将排序结果存入新文件名中。【说明】排序结果存入由TO 指定的表文件中,系统默认文件扩展名为.DBF。在ON子句中的字段名表示排序的关键字段。当使用一个关键字时,叫“单重排序”;使用多

3、个关键字时,叫“多重排序”。在多重排序中,关键字有主次之分。主关键字是指能够唯一标识某个记录的关键字;次关键字是指标识具有某种相同属性的某些记录的关键字。在关键字表达式中,主关键字排在前面,次关键字排在后面。执行排序操作时,先按主关键字排列,当在主关键字出现相同字段值时,再按次关键字排序。关键字段可以是N型、C型或D型,但不能是L型、M型和G型数据。即不可选用备注型或通用型字段来排序。其中:N型以数值大者为大;C型以拼音顺序AZ;D型以后面的日期为大。参数/A或ASCENDING表示升序排序;/D或DESCENDING表示降序排序。省略时,表示升序;/C只适用于C型数据,选择/C时,不区分大小

4、写字母,省略/C时,小写字母大于大写字母。省略、FOR/WHILE等子句,则对所有记录排序。FIELDS子句指新表中包含的字段,省略时,默认新表包含源表中所有字段。可以包含其他工作区中的表文件字段,但必须使用别名调用格式:工作区号-字段名;或:别名-字段名;或:别名.字段名。【例5-1】 对表文件“学生.DBF”中的男生按入校总分降序排序,生成新文件“入校总分.DBF”,且新表中只包含学号、姓名、入校总分3个字段。USE 学生BROWSE & 显示结果如图5-1所示。 图5-1 学生.DBF显示结果SORT TO 入校总分 ON 入校总分/D FIELDS 学号,姓名,入校总分USE 入校总分

5、BROWSE & 显示结果如图5-2所示。图5-2 入校总分.DBF显示结果【例5-2】 对“教师.DBF”记录中享受政府津贴的教师按姓名升序排序,生成新文件“政府津贴.DBF”。USE 教师BROWSE & 显示结果如图5-3所示。图5-3 教师.DBF显示结果SORT TO 政府津贴 ON 姓名 FOR 政府津贴USE 政府津贴BROWSE & 显示结果如图5-4所示。 图5-4 政府津贴.DBF显示结果二、 索 引5.2.1 索引的概念Visual FoxPro的索引文件由指向.DBF文件记录的指针构成,这些指针指向表文件中的记录,在逻辑上按照指定索引关键字排序,索引并不改变表记录的物理

6、顺序,只是与表记录建立一种逻辑关系。索引和表(.DBF)分别存储在两个文件中。在索引文件中,只包含索引关键字和记录号两个字段,每个关键字值对应表文件中的一个记录号,利用记录指针的移动确定记录的逻辑顺序。索引是一种不可显示文件。如果用户希望按照某种特定顺序查看和访问表记录,例如按总分从高到低的顺序查看学生表中的记录,可以按总分索引,然后根据这个索引关键字设置表中记录的顺序,并且按新的顺序访问表记录。使用索引可以加速对表的查看和访问操作,这类似于一本书按目录快速查找内容。1. 物理顺序、逻辑顺序与使用顺序记录储存在表文件中的实际排列顺序,称为物理顺序。执行排序操作后,记录在排序文件中形成的顺序就是

7、一种物理顺序。按照某个关键字或关键字表达式在关键字与记录号之间建立的一种逻辑上的顺序,称为逻辑顺序。执行索引操作后,索引关键字与记录号建立的顺序就是一种逻辑顺序。实际操作的记录顺序,称为使用顺序。使用顺序可以是物理顺序,也可以是逻辑顺序。记录指针在表记录中的移动是按使用顺序进行的。2. 索引的分类Visual FoxPro的索引分为单索引和复合索引。只包含一个索引项的索引文件,称为单索引文件(又叫独立索引文件)。单索引文件扩展名为.IDX。包含有多个索引项的索引文件,称为复合索引文件。在复合索引文件中每个索引项都有一个索引标识(Index Tag),代表索引的名称。复合索引文件自动被压缩,以压

8、缩方式储存,占有较小空间。复合索引文件在使用时必须打开,而且在更新表文件数据时,必须使其处于活动状态。复合索引文件扩展名为.CDX。根据功能不同,复合索引可以分为主索引、候选索引、普通索引和唯一索引4种类型。(1)主索引主索引是设定有主关键字的索引,主关键字能唯一确定记录的顺序,它不允许在指定字段中出现重复值。如果在任何已经包含了重复数据的字段中指定主索引,Visual FoxPro 将返回一个错误信息。例如,将姓名字段作为主索引关键字,若出现同名同姓人员,也即出现了关键字重复值,这样的关键字就不是主关键字。主索引仅适用于表表,一个数据表只能创建一个主索引,自由表不能创建主索引。(2)候选索引

9、像主索引一样候选索引要求字段值的唯一性,它不包含 NULL值或重复值。如果在任何包括重复数据的字段中指定候选索引,Visual FoxPro 将返回一个错误信息。一个数据表或自由表中都可以建立多个候选索引。(3)普通索引普通索引不要求字段值具有唯一性,可以决定记录的处理顺序,且允许字段中出现重复值。一个数据表或自由表中可以有多个普通索引。(4)唯一索引不允许两个记录具有相同的字段值,对于关键字值相同的记录,索引中只列入其中的第一个记录。一个数据表或自由表中可以有多个普通索引。复合索引文件分为有结构的结构复合索引文件和无非结构的独立复合索引文件。结构复合索引文件的由Visual FoxPro自动

10、命名,与表文件同名,它随表文件的打开而打开,在对表增加或删除记录时系统会自动维护。独立复合索引文件与表文件不同名,且不随表文件的打开而打开。打开独立复合索引文件要使用SET INDEX命令。3. 永久关系与参照完整性主索引用于表表中主表或“被引用”表,在一个永久关系中建立参照完整性。(1)永久关系指表中表之间的一种保存在数据表文件中的关系。在表设计器中可以看到连接两个表索引之间的关系线。(2)参照完整性在永久关系的相关表中,如果只对其中的一个表进行插入、更新或删除操作,就会影响到数据的完整性。因此,参照完整性属于表表间规则,用于控制数据的一致性。为了保持参照完整性,可以利用“参照完整性生成器”

11、建立规则,控制记录在相关表中的插入、更新或删除。5.2.2 索引的建立1. 命令方式【命令】 INDEX ON TO|TAGOFFOR COMPACT ASCENDING |DESCENDING UNIQUE | CANDIDATE ADDITIVE【功能】 对当前表文件按指定关键字建立索引或增加索引标识。【说明】:指定建立索引文件的关键字。可以是一个字段,也可以是多个字段组成的关键字表达式,多个字段之间用“十”或“一”连接,主关键字在最前面,且数据类型要相同。可以是N型、C型、D型。TO 子句建立单索引(.IDX)。TAG子句建立复合索引(.CDX)及索引标识。选项COMPACT 指定单索引

12、为压缩文件。OF子句指定独立复合索引文件名。缺省该子句表示建立结构复合索引文件。FOR 对符合条件的记录建立索引,缺省该条件则对所有记录建立索引。ASCENDING表示升序索引;DESCENDING表示降序索引;UNIQUE表示建立唯一索引;TAG CANDIDATE表示候选索引。ADDITIVE表示建立索引文件时,并不关闭先前的索引。索引文件不能单独使用,必须同表文件一起使用。该命令默认建立普通索引型索引文件。【例5-3】 对学生.DBF按入校总分建立单索引文件。USE 学生INDEX ON 入校总分 TO ZFLIST【例5-4】 学生.DBF建立复合索引,其中包含3个索引:(1)以姓名降

13、序排列,索引标识为普通索引。USE 学生INDEX ON 姓名TAG xm DESCENDING*建立复合索引文件学生.CDX,xm为普通索引标识LIST(2)以性别升序排列,性别相同时以入校总分升序排列,索引标识为普通索引。INDEX ON 性别+STR(入校总分,3) TAG xbzfa*关键字为性别+STR(入校总分,3),普通索引标识xbzfa加入学生.CDX中LIST(3)以性别升序排列,性别相同时以出生年月降序排列,索引标识为候选索引。INDEX ON 性别-DTOC(出生年月) TAG xbcsd CANDIDATE* xbcsd为候选索引型索引标识,索引标识xbcsd加入学生.

14、CDXLIST2. 菜单方式建立索引【菜单】 单击“文件”菜单单击“打开”命令选中“表”选项“显示”菜单表设计器“索引” 选项卡“索引名”“排序”“类型”“表达式”单击“确定”按钮。如图5-5所示。图5-5 表设计器中”索引”选项卡【例5-5】 利用表设计器建立或修改索引。(1)选择“文件”菜单中的“打开”命令,选择表文件“学生.DBF”。(2)选择“显示”菜单中的表设计器,单击“索引”选项卡,将“索引名”设为XBXHAD,单击该表达式右侧的按钮,弹出“表达式生成器”对话框,如图5-6所示。在“字段”列表框中双击“性别”,在“数学”组合框中选定“+”号,在“字段”列表框中双击“学号”,这时,“表达式”列表框中显示“性别+学号”。也可以在“表达式”列表框中直接输入表达式“性别+学号”。图5-6 表达式生成器(3)单击“确定”按钮,便完成建立工作。(4)利用“表设计器”对话框中的“插入”按钮在当前行前插入一个空行,可以建立新索引。利用“删除”按钮可以删除选定的索引。5.2.3 索引的使用和删除使用索引查询必须满足以下条件:(1)打开表。(2)打开索引文件。(3)确定主控索引文件。(4)对于复合索引文件还需确定主控索引。1. 打开索引文件使用索引,必须同时打开表文件和索引文件。打开索引文件就是把索引文件调入内存,并对当前相关表进行排序。打开一个表文件时,结

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号