VFP中索引关键字表达式指什么?例如'按学生编号建立索引文件"表达式应该怎么写?

VFP中索引关键字表达式指什么?例如'按学生编号建立索引文件"表达式应该怎么写?,第1张

INDEX on 学生编号 TO suoyin

其中 suoyin是索引文件名,你可以随便起。

INDEX ONeExpressionTOIDXFileName| TAGTagName[BINARY] [COLLATEcCollateSequence] [OFCDXFileName] [FORlExpression] [COMPACT] [ASCENDING | DESCENDING] [UNIQUE | CANDIDATE] [ADDITIVE]

eExpression

指定一个索引表达式,它确定了 Visual FoxPro 中显示和 *** 作记录的顺序。eExpression可以是一个简单表达式,如当前表中的一个或多个字段名,也可以是一个包含 Visual FoxPro 函数、常数等的复合表达式。Visual FoxPro 产生基于eExpression的索引关键字,并在指定的索引文件中存储它们。索引文件并不影响存储在表中记录的物理顺序。

TOIDXFileName

为存储用eExpression产生的独立索引关键字指定永久索引文件(.idx)名。

提示:

通过包含不同的扩展名或改变 Visual FoxPro 配置文件中的默认索引扩展名,可以不考虑默认的索引文件扩展名。创建索引文件时,若包含长文件名,则必须遵循标准的 Windows 文件命名规则。

TAGTagName

为由eExpression创建的索引指定名称或标识,并存储在复合索引文件(.cdx)中。标识名必须以字母或下划线(_)开头,并且可以包含最多 10 个字母、数字、或下划线的字符组合。

注意:

.cdx 文件中标识的数量仅受可用内存和磁盘空间的限制。如果表的 .cdx 文件已经存在并且打开,则发出包含TAGTagName的 INDEX命令将添加一个标识到打开的 .cdx 文件中。如果创建一个索引标识但没有指定索引文件名,则 Visual FoxPro 自动添加标识到表的结构索引文件(.cdx)中。

有关索引文件的更多信息,请参见Visual FoxPro 索引文件。

[COLLATEcCollateSequence]

指定一个不同于默认设置 MACHINE 的比较序列。cCollateSequence必须是一个有效的 Visual FoxPro 比较序列。有关设置比较序列的更多信息,请参见优化国际化应用程序和SET COLLATE 命令。

[OFCDXFileName]

为存储由eExpression产生的索引或标识指定非结构复合索引文件(.cdx)名。若省略该子句则创建一个结构.cdx文件,若包含该子句则创建非结构.cdx文件。有关索引文件的更多信息,请参见Visual FoxPro 索引文件。

[FORlExpression]

指定筛选表达式,只显示或访问那些符合筛选表达式的记录。

提示:

若lExpression可以被优化,则 Rushmore 技术将优化INDEX命令中的FOR子句。为了获得最佳信能,应在FOR子句中使用可优化表达式。更详细的信息,请参见SET OPTIMIZE和使用 Rushmore 查询 优化数据访问速度。

有关筛选表达式的更多信息,请参见如何: 筛选数据。

[COMPACT]

创建一个压缩的索引(.idx)文件。压缩的 .idx 文件更小,也可更快的访问。

注意:

创建一个复合索引(.cdx)文件时,不必非要包含COMPACT。复合索引文件总是压缩的。

更详细的信息,请参见如何: 创建更小的经常使用的索引。

[ASCENDING | DESCENDING]

为显示和访问复合索引(.cdx)文件索引的记录指定顺序。ASCENDING指定显示和访问记录的顺序为升序。默认情况下,Visual FoxPro 以升序显示和访问记录。当然,您也可以包含ASCENDING明确指出记录的现实顺序。DESCENDING指定显示和访问记录的顺序为降序。

注意:

当创建独立索引文件(.idx)时不能使用DESCENDING;但是,可以通过使用SET INDEX和SET ORDER命令将 .idx 文件指定降序。

[UNIQUE | CANDIDATE]

创建一个唯一索引或候选索引。UNIQUE只存储指定索引表达式的第一条与索引关键字相匹配的记录。索引关键字作为独立索引文件(.idx)中的唯一关键字或复合索引文件(.cdx)中的索引标识来存储。任何其它与索引表达式相匹配的记录的索引关键字都排除在索引文件之外。

注意:

使用UNIQUE不能避免重复的记录被添加到表中。它只能避免重复的索引关键字添加到索引文件中。当UNIQUE索引或索引标识处于活动状态时,如果改变了一个有重复索引关键字的记录,则同时需要改变索引或所以标识。但是,在重新用REINDEX命令索引该文件之前,Visual FoxPro 不能显示或访问下一个有相同索引关键字的记录。

使用UNIQUE与在发出INDEX或REINDEX之前执行SET UNIQUE ON作用相同。更详细的信息,请参见SET UNIQUE 命令。只有在存储一个索引标识到一个结构复合索引文件(.cdx)中时才能包含CANDIDATE;否则,Visual FoxPro 将产生一条错误信息。

注意:

候选索引不允许字段中存在重复值。如果为包含重复值一个或多个字段创建候选索引,则 Visual FoxPro 产生一条错误。

有关候选索引的更多信息,请参见Visual FoxPro 索引类型。有关索引文件的更多信息,请参见Visual FoxPro 索引文件。

[ADDITIVE]

保持所有已打开的索引文件的打开状态。省略ADDITIVE子句,将关闭所有已打开的索引文件,除了结构复合索引文件(.cdx)之外。

注意:

可以保持打开状态的索引文件的数量仅受内存和系统资源的限定。在 Visual FoxPro 中,Windows Config.sys 配置文件中FILES的设置决定了可以打开的文件总数。

[BINARY]*NEW

创建一个二进制索引(binary index)。有关二进制索引的更多信息,请参见Visual FoxPro 索引类型.

注意:

在为eExpression指定一个索引表达式时,必须指定一个结果不是空值(null)的有效逻辑表达式。若要将一个二进制索引的索引表达式改为空值(null),则 Visual FoxPro 将产生一条错误。

在使用二进制索引时,不能使用FOR子句指定筛选表达式或ASCENDING,DESCENDING,UNIQUE, CANDIDATE关键字。当设置为二进制索引标识时,Visual FoxPro 不支持SET ORDER命令。如果您试图设置二进制标识的顺序,Visual FoxPro 将产生一条错误,并且当前顺序延用原来的设置。Visual FoxPro 不支持对二进制索引的SEEK *** 作,或在独立单关键字索引(.idx)中包含二进制索引。

下面两个命令可以实现。去上机试,然后决定答案是否正确。我上机试过了。

1.按照系号(字符型)升序排列,系号相同者按照性别降序排列。

index on 系号+iif(性别="男",str(2,1),str(1,1)) tag <索引名>

2.首先按照性别升序排列,性别相同时按照出生日期升序排列。

index on 性别+dtoc(出生日期,1) tag <索引名>

vfp中设置主键的命令:

INDEX ON eExpression TO IDXFileName | TAG TagName [OF

CDXFileName]

[FOR lExpression]

[COMPACT]

[ASCENDING | DESCENDING]

[UNIQUE | CANDIDATE]

[ADDITIVE]

参数

eExpression

指定一个索引表达式,该表达式中可以包含当前表中的字段名。在索引文件中,按索引表达式给每一个表记录都创建一个索引关键字,Visual FoxPro 使用这些关键字来显示和访问表中的记录。我们一般用一些生活中不会出现的字段来作为主索引,如身份z号等。

UNIQUE

对于一个索引关键字值。利用 UNIQUE 子句可以避免显示或访问记录的重复值。所有添加到表中的记录,如果与表中原有记录有重复的索引关键字值,则不包含在索引文件之内。 要设置主键 必须要有这个参数

举例说明:

INDEX ON 身份z号 TAG idcard UNIQUE

即设计数据库中的"身份z号"字段为主索引。索引标识为 idcard


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9901739.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-03
下一篇 2023-05-03

发表评论

登录后才能评论

评论列表(0条)

保存