- 5
- 0
- 约4.37千字
- 约 52页
- 2017-06-27 发布于河南
- 举报
VFP第8部分(排序索引及多表操作)
数据表的索引排序 索引是按索引关键字表达式的值使数据表中的记录有序排列的一种技术,在Visual FoxPro系统中是借助于索引文件实现的。 Visual FoxPro系统提供了四种不同的索引类型,它们分别是: 使用索引文件后,虽然表中各记录的物理顺序并未改变。但记录指针不再按物理顺序移动,而是按主控索引文件中记录的逻辑顺序移动,于是整个表中的记录是按索引关键表达式值排序的效果。 使用索引文件时,还要特别注意以下几点: (1)在使用GO命令时,GO 数值表达式使记录指针指向具体的物理记录号,而与索引无关,而GO TOP|BOTTOM将使记录指针指向逻辑首或逻辑尾记录,这时GO TOP不再等同于GO 1。 (2)SKIP命令按逻辑顺序移动记录指针。 (3)表被打开后,记录指针位于TOP位置,而不一定指向1号记录。 【例】 当索引起作用时,分析记录指针的移动规律。 USE 学生 INDEX ON 入学成绩 TAG sy3 GO 6 ? RECNO(),姓名 显示6 李勤奋 SKIP ? RECNO(),姓名 显示5 欧阳天地 关键字为唯一值 关键字为唯一值 一 一 关键字为重复值 关键字为唯一值 多 一 关键字为唯一值 关键字为重复值 一 多 关键字为重复值 关键字为重复值 多 多 父表 子表 主动 被动 建立表间的关联 建立数据库文件中表间关联, 一是要保证建立关系的表具有相同的字段值(关键字值); 二是子表要以该字段建立索引。 建立两个表之间的“一对一”和“多对一”关联的步骤: ①找到两个表中能够建立关联的字段(字段名可以不同,类型、宽度、小数位数必须相同) ②根据关键字值确定父表,再确定子表; ③先打开子表,建立索引; ④最后打开父表建立关联。 有重复值为父表 set rela to [表达式1 into 别名1,…,表达式N into 别名N] [additive] 说明:①发出关联命令所在工作区的表是父表 建立关联的命令 (教科书P83) ②子表必须对关联字段索引 ③ 表达式是关联的关键字 不同名的字段只要类型和数值相同也可建立关联。 ④关联后,父表指针移动带动子表指针移动;而如果当前工作区是子表,其指针移动,父表指针不会移动。 ⑤[additive] 一般用于三个或三个以上的表之间建立多重关联,第2、3…个关联使用该选项。 ⑥关联后,当前工作区字段名可以直接使用,子表的字段在使用时要加“别名.字段名”。 ⑦set rela to recn()+N into 别名把记录号作关键字建立关联。 BB AA Sele 1 Use AA inde on 字段 tag zd Sele 2 Use BB Set rela to 字段 into A(或 AA或1) 字段 Sele 0 Use AA inde on 字段 tag zd Sele 0 Use BB Set rela to 字段 into AA AA BB CC 或 AA BB AA CC 字段1 字段2 字段1 3个表建关联? 字段2 (见教科书第84页例4.22) set skip to [别名1 [, 别名2]…] 一般不用 用在set relation命令之后,说明已建关联的性质为一多关系。 建立表间的一对多关系 * 数据表的分类排序 命令格式 sort to 文件名 on 字段1 [/a] [/d][/c]…… 产生的表是关闭的 (教科书P73) 分类排序有什么缺点 1、什么是索引 索引关键字的值、记录号 (教科书P74) 2、索引的类型 主索引:仅适用于数据库表,不允许关键字段有重复值,一个数据表只能建一个主索引。 候选索引:不允许索引关键字段有重复值 普通索引:最常用的索引类型,无任何限制 唯一索引:允许索引关键字段有重复值 Visual FoxPro系统支持单 索引文件(.idx)和复合索 引文件(.cdx)。 3、索引文件的类型 (1)单索引文件(略) 单索引文件是每个索引存放在一个独立的文件(.idx)中。 (2)结构化复合
原创力文档

文档评论(0)