分享

VFP 索引

 悟静 2009-04-27
2.5 表的索引
1. 基本概念
记录的顺序 :
物理顺序:即表中记录的存储顺序。用记录号表示。
逻辑顺序:表打开后被使用时记录的处理顺序。
索 引: 
指按表文件中某个关键字段或表达式建立记录的逻辑顺序。它是由一系列记录号组成的一个列表,提供对数据的快速访问。索引不改变表中记录的物理顺序。表文件中的记录被修改或删除时,索引文件可自动更新。
索引关键字(索引表达式):用来建立索引的一个字段或字段表达式。
注意:1)用多个字段建立索引表达式时,表达式的计算结果将影响索引的结果;
2)不同类型字段构成一个表达式时,必须转换数据类型。 
索引标识(索引名):
即索引关键字的名称。必须以下划线、字母或汉字开头,且不可超过10个字。
索引类型:主索引、候选索引、普通索引、唯一索引。
主索引: 
组成主索引关键字的字段或表达式,在表的所有记录中不能有重复的值。主索引只适用于数据库表的结构复合索引中。自由表中不可以建立主索引;数据库中的每个表可以且只能建立一个主索引。
候选索引: 
在指定的关键字段或表达式中不允许有重复值的索引。在数据库表和自由表中均可为每个表建立多个候选索引。 
普通索引: 
也可以决定记录的处理顺序,但是允许字段中出现重复值。在一个表中可以加入多个普通索引。 
唯一索引: 
参加索引的关键字段或表达式在表中可以有重复值,但在索引对照表中,具有重复值的记录仅存储其中的第一个。
2. 索引的作用
用途    采用的索引类型
排序记录,以便显示、查询或打印    使用普通索引、候选索引或主索引
在字段中控制重复值的输入并对记录排序    对数据库表使用主索引或候选索引,对自由表使用候选索引
准备设置表关系    依据表在关系中所起的作用,使用普通索引、主索引或候选索引
3.索引文件的种类
索引文件种类    特征    关键字数目    限制
结构复合索引文件
.CDX    使用和表文件名相同的基本名,随表的打开自动打开。可以看成表结构的一部分。    多关键字表达式,称为标识。    有效表达式限制在 240 个字符之内。
非结构复合索引文件
.CDX    必须明确地打开,使用和表名不同的基本名。其中不能创建主索引    多关键字表达式,称为标识。    有效表达式限制在 符之240 个字内。
独立索引文件
.IDX    必须明确地打开,文件的基本名由用户定义。一般作为临时索引文件。    单关键字表达式。    有效表达式限制在 100 个字符之内。
结构复合索引文件(扩展名为.CDX)的特点:
.在创建索引标识时自动创建。
.在打开表时自动打开。
.在同一索引文件中能包含多个排序方案,或索引关键字。
.在添加、更改或删除记录时自动维护。 
4. 创建结构复合索引
VFP中创建索引文件有两种方式:表设计器方式和命令方式。
(1)表设计器方式 
打开表文件 →从显示菜单中选择表设计器 → 在表设计器中单击索引 → 输入索引名并选择索引类型 → 选择索引的方向(按升序或降序排列记录) → 在表达式框中输入作为排序依据的索引关键字 → 在筛选框中输入筛选表达式 → 单击确定,完毕。
(2) 命令方式
命令    功能
INDEX ON <索引关键字段> TAG <索引标识>[FOR 条件 ] [ASCENDING | DESCENDING] [CANDIDATE | UNIQUE]     用INDEX ON 命令建立一个索引文件
ALTER TABLE <表名> ADD PRIMARY KEY <关键字段名> TAG <索引标识名>    用SQL命令创建主索引
ALTER TABLE <表名> ADD UNIQUE <关键字段名>TAG <索引标识名>     用SQL命令创建候选索引
注意:1)备注型字段和通用型字段不能作为索引关键字段;
2)不要建立无用的索引,以免降低系统性能;
3)及时清理已无用索引标识,提高系统效率。
4)在复合索引的多个索引中,某一时刻只有一个索引对表起作用。
5. 索引的修改和删除
修改: 打开表设计器,在索引对话框中进行所需修改;
或 用命令重新建立一个相同标识名而索引表达式不同的索引。
删除: 打开表设计器,在索引对话框中删除不需要的索引标识即可;
或 用命令: DELETE TAG ALL | 索引标识1 [, 索引标识2 ] … 
删除不需要的索引标识,ALL表示全部标识。
6. 索引的使用
功能    命令格式
打开表的同时指定主控索引    USE <表名> ORDER <标识名>
为已打开的表确定主控索引    SET ORDER TO <标识名> [ASCENDING | DESCENDING] ]
搜索某张已建立索引的表    FIND <表达式>
搜索表中首次出现的记录    SEEK <表达式> [ <索引标识名>] 
    SEEK <表达式>
 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多