VFP第9部分(排序索引及多表操作)教学提纲

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
索引关键字的值、 记录号
2、索引的类型
Visual FoxPro系统提供 了四种不同的索引类型,它 们分别是:
主索引:仅适用于数据库表,不 允许关键字段有重复值,一个数据
表只能建一个主索引。
候选索引:不允许索引关键字段 有重复值
普通索引:最常用的索引类型, 无任何限制
唯一索引:允许索引关键字段有 重复值
数据表的分类排序
命令格式
(教科书P73)
sort to <文件名> on <字 段1> [/a] [/d][/c]……
产生的表是关闭的
分类排序有什 么缺点
数据表的索引排序
1、什么是索引 (教科书P74)
索引是按索引关键字表达式的值 使数据表中的记录有序排列的一种 技术,在Visual FoxPro系统中是 借助于索引文件实现的。
使用索引文件时,还要特别注意以下几点:
(1)在使用GO命令时,GO <数值表达式>使记录指 针指向具体的物理记录号,而与索引无关,而GO TOP|BOTTOM将使记录指针指向逻辑首或逻辑尾记 录,这时GO TOP不再等同于GO 1。
(2)SKIP命令按逻辑顺序移动记录指针。
(3)表被打开后,记录指针位于TOP位置。
2、别名
(1)前十个工作区除了可用1~10来 标识外,还可用A~J来表示工作区的别 名。
(2)定义别名
格式:
use <文件名> alias <别名>
如没有给表定义别名,
3、选择当前工作区 则可以用数据表名作
为别名。
select <工作区号>|<别名>
sele 0 表示选定当前未使用的最 小号工作区。
更重要的是,对于结构复合索引, 无论何时打开表文件,该索引都会 自动打开。
其文件名与表名相同,一个表文件 只产生一个结构化复合索引文件。
(3)独立复合索引文件(略)
4、索引的建立 (教科书P75)
结构化复合索引文件的建立 (命令方式)
Index on <索引关键字表达式 > tag <索引标识名> [ascending|descending] ……
3、索引文件的类型
Visual FoxPro系统支持单 索引文件(.idx)和复合索 引文件(.cdx)。
(1)单索引文件(略)
单索引文件是每个索引存放在一 个独立的文件(.idx)中。
(Leabharlann Baidu)结构化复合索引文件
结构化复合索引文件(.cdx)可 以在同一个文件中包含多个索引,其 中每个索引称为索引标识。
【例】 当索引起作用时,分析记录指针的移动 规律。
USE 学生 INDEX ON 入学成绩 TAG sy3 GO 6 ? RECNO(),姓名 &&显示6 李勤奋 SKIP ? RECNO(),姓名 &&显示5 欧阳天地
有机(ABTCT某要关ABCAA本本字(...)))I不(ABCDII数成A数 建 键自 ((NGGNNBC)工 工 表))))"复 ( AC学学据绩D允DD姓据 立 字)由 )CC)学) )““E普EE达资 资侯 惟 惟表(合号 号JJ许)姓 姓。名表表 学NX表XXII号PC通DD/式”选一 一文,结++N字。6名名O)+达OO有 号JgDXX"S成,件索基T2/是两索索索zNNN构+T6段X””式字 、).绩d的"/CR引姓本(姓姓字引引引2索b值++成是段成J等降(+f名基“名名.和工成段和和有引D生出基绩(:绩序字+)-+B本惟资绩的主主姓上文S日现S本"F学、建段。TT工+一,,组机索索名件)5重工立BDRR号生",,按资成索1引引合生)()/(的。索复资C日/)要C姓绩+-引1索日/PM引类上8的”S0的、建R名、0TT引"E,机型索0G组生A(立RM-出C正,成上G名引(合日,以生8生确绩机其C称)是索/的“日JD的年,成索I是升引、D姓命,6绩月8引X,序),成令名)/关D2,其绩是)、、键上索/基N基引等。 DD.)I(ND学D)E号姓X+名OSN+TsR姓tr((名成基/绩A,本,5上,工1)机资+D成,T绩6O/,DC2(T生)AG日C,1J)IDX
【例】 就学生表建立结构复合索引文件,其中 包含2个索引:
(1)按学号的升序排列,编号相同的记录只显 示第一条。
(2)先按性别升序,性别相同再按入学成绩降 序排列。
USE 学生 INDEX ON 学号 TAG sy1 UNIQUE INDEX ON 性别+STR(1000-入学成绩) TAG sy2
(1)确定主控索引 (教科书P77) 命令格式:
set order to [[tag] <索引标识 名>]
(2)删除索引
delete tag all | <索引标识1>……
(3)索引更新
自动更新
使用索引文件后,虽然表中各记录的物理顺序并未 改变。但记录指针不再按物理顺序移动,而是按主控 索引文件中记录的逻辑顺序移动,于是整个表中的记 录是按索引关键表达式值排序的效果。
在表设计器中建立索引
表设计器中的“索引”选项卡
5、索引的使用
一个表文件可以建立多个索引, 在操作中可以同时打开多个索引, 但是任何时候只有一个索引起作用。
索引依赖于表文件而存在,它 随表的关闭而自动关闭。
当前起作用的索引标识称为主控 索引。
要使用索引必须满足以下条件: 打开表; 确定主控索引;
多表操作
(教科书P82)
若要使用多个表,就要使用多个 工作区。一个工作区是一个编号区 域,它标识一个已打开的表。在应 用程序中通常通过使用工作区号和 工作区别名来标识。
1、工作区号
Visual foxPro提供了32767 个工作区,编号从1到32767。
每个工作区只允许打开一个表, 一个表只能在一个工作区打开,系 统默认的工作区为1号工作区。
自动产生与表同名 的.CDX文件
特别注意:
建立索引时,当<索引关键字表 达式>涉及到两个或两个以上的不 同类型的字段时:
1)顺序若相同,则将非字符型转换 为字符型,然后用“+”连接成一个 字符表达式。
2)顺序若不同,则以字符型字段 的顺序为准,若数字型字段的顺 序与字符型不同,则用一个较大 数减去该字段,再转化为字符型; 若日期型字段的顺序与字符型不 同,则用一个较大的日期减去该 字段,再转化为字符型,然后用 “+”连接成一个字符表达式。
相关文档
最新文档