选择合适的索引类型可以以下列准则作为依据: 1、如果需要排序记录,以便显示、查询或打印,可以使用普通 索引、候选索引或主索引 2、如果要在字段中控制重复值的输入并对记录排序,则对数据 表可以使用主索引或候选索引,对自由表可以使用候选索引 3、如果准备设置关系,则可以依据表在关系中所起的作用来分 别使用普通索引、主索引或候选索引。 4.2.1建立索引 1、单索引文件的建立 格式: INDEX ON<索引关键表达式>TO<索引文件名> IUNIQUE|FOR<条件> ADDITIVE 功能:对当前表中满足条件的记录,按<索引表达式>的值建立 个索引文件,并打开此索引文件,其缺省的文件扩展名为IDX 参数描述: <索引关键表达式>:用以指定记录重新排序的字段或表达式 2021-2-20 Visual Foxpro60程序设计
2021-2-20 Visual FoxPro 6.0程序设计 6 选择合适的索引类型可以以下列准则作为依据: 1、如果需要排序记录,以便显示、查询或打印,可以使用普通 索引、候选索引或主索引。 2、如果要在字段中控制重复值的输入并对记录排序,则对数据 表可以使用主索引或候选索引,对自由表可以使用候选索引。 3、如果准备设置关系,则可以依据表在关系中所起的作用来分 别使用普通索引、主索引或候选索引。 4.2.1 建立索引 1、单索引文件的建立 格式:INDEX ON <索引关键表达式> TO <索引文件名> [UNIQUE] FOR <条件>[ADDITIVE] 功能:对当前表中满足条件的记录,按<索引表达式>的值建立一 个索引文件,并打开此索引文件,其缺省的文件扩展名为.IDX。 参数描述: <索引关键表达式>: 用以指定记录重新排序的字段或表达式
<索引关键表达式>可以是字段名,也可以是含有当前表中字段的 合法表达式。表达式值的数据类型可以是字符型、数值型、日期 型、逻辑型。若在表达式中包含有几种类型的字段名,常常需要 使用类型转换函数将其转换为相同类型的数据。 UNIQUE]:指定 UNIPUE子句时,若有多条记录的<索引关键表 达式>的值相同时,则只把第一次遇到的记录进行排序加入到索 引文件中;省略该子句时,则把所有遇到的记录值都加入到索引 文件中 LADDITIVE]:若省略 ADDITIVE子句,当为一个表建立新的索 引文件时,除结构复合索引文件外,所有其它打开的索引文件都 将会被关闭;若选择此选择项,则已打开的索引文件仍然保持打 开状态 FOR<条件>:指定一个条件,只显示和访问满足这个条件的表 达式<条件>的记录,索引文件只为那些满足条件的表达式的记录 创建索引关键字。 2021-2-20 Visual Foxpro60程序设计
2021-2-20 Visual FoxPro 6.0程序设计 7 <索引关键表达式>可以是字段名,也可以是含有当前表中字段的 合法表达式。表达式值的数据类型可以是字符型、数值型、日期 型、逻辑型。若在表达式中包含有几种类型的字段名,常常需要 使用类型转换函数将其转换为相同类型的数据。 [UNIQUE]:指定UNIPUE子句时,若有多条记录的<索引关键表 达式>的值相同时,则只把第一次遇到的记录进行排序加入到索 引文件中;省略该子句时,则把所有遇到的记录值都加入到索引 文件中。 [ADDITIVE]:若省略ADDITIVE子句,当为一个表建立新的索 引文件时,除结构复合索引文件外,所有其它打开的索引文件都 将会被关闭;若选择此选择项,则已打开的索引文件仍然保持打 开状态。 FOR <条件>:指定一个条件,只显示和访问满足这个条件的表 达式<条件>的记录,索引文件只为那些满足条件的表达式的记录 创建索引关键字
分类与索引的区别 、分类要生成一个新的表文件,记录的物理顺序发生了改变; p、分类生成的表可以单独使用。 3、索引它并不生成新的表文件,仅仅是表中记录的逻辑顺序发生 变化,但索引也要生成一个新的文件,即索引文件 4、索引文件不能单独使用,它必须同表一起配合使用。 单索引文件总是按升序的顺序排列。对于一个表文件,允许建立 多个索引文件 USE STUDENT 执行上述命令 INDEX ON学号 TO XHSY屏幕显示结果 LIST 记录号/学号 名 性别出生日期班级 宿舍申话 说明 9804052 男女男男 98电子 356404 98052031 欧阳南 2/07/8198计算机 4-4112356188 memo 99043010 男04/21/81 机械 3-3052356300 699043021 王向阳 03/29/8199机械 3-3102356333 李娟 女01/17/8099电子 4-2012356122 9904500 张中强 男03/22/ 3-3112356306 序 李磊 男10/04/8099英语 4-2022356234 2021-2-20 Visual Foxpro60程序设计
2021-2-20 Visual FoxPro 6.0程序设计 8 分类与索引的区别 1、分类要生成一个新的表文件,记录的物理顺序发生了改变; 2、分类生成的表可以单独使用。 3、索引它并不生成新的表文件,仅仅是表中记录的逻辑顺序发生 了变化,但索引也要生成一个新的文件,即索引文件。 4、索引文件不能单独使用,它必须同表一起配合使用。 单索引文件总是按升序的顺序排列。对于一个表文件,允许建立 多个索引文件。 USE STUDENT INDEX ON 学号 TO XHSY LIST 当执行上述命令后 屏幕显示结果 按 学 号 排 序
2、复合索引文件的建立 复合索引文件是由索引标记组成的,每个复合索引文件可包含多 个索引标记,每个索引标记都有标记名,一个索引标记相当于 个单索引文件。 格式: INDEX ON<索引关键表达式>TAG<标记名>OF<复合 索引文件名|FOR<条件> LASCENDING DESCENDINGI UNIQUEILADDITIVEI 功能:建立和修改复合索引文件,并打开此索引文件,其缺省的 文件扩展名为CDX。 参数描述: <索引关键表达式>、[FOR<条件>、[ ADDITIVE:与上相同 TAG<标记名>[OF<复合索引文件名>:创建一个复合索引文件 在TAG<标记名>参数中不包含可选的[OF<复合索引文件名>子 句时,便可以创建结构复合索引文件。 2021-2-20 Visual Foxpro60程序设计
2021-2-20 Visual FoxPro 6.0程序设计 9 2、复合索引文件的建立 复合索引文件是由索引标记组成的,每个复合索引文件可包含多 个索引标记,每个索引标记都有标记名,一个索引标记相当于一 个单索引文件。 格式:INDEX ON <索引关键表达式> TAG <标记名> [OF <复合 索引文件名>][FOR <条件>] [ASCENDING | DESCENDING] [UNIQUE][ADDITIVE] 功能:建立和修改复合索引文件,并打开此索引文件,其缺省的 文件扩展名为.CDX。 参数描述: <索引关键表达式>、[FOR <条件>]、[ADDITIVE]:与上相同。 TAG <标记名> [OF <复合索引文件名>]:创建一个复合索引文件。 在TAG <标记名>参数中不包含可选的[OF <复合索引文件名>]子 句时,便可以创建结构复合索引文件
如果在TAG<标记名>参数后包含可选项[OF<复合索引文件名 子句,则可以创建非结构复合索引文件。 LASCENDING| DESCENDINGI: ASCENDING指定复合索引文 件为升序,这是默认值。 DESCENDING指定复合索引文件为降 序 IUNIQUE]:对于一个索引关键值,只有第一个满足该值的记录 包含在IDX文件或CDX标识中。利用 UNIQUE子句可以避免显示 或访问记录的重复值。 说明: (1)执行上述命令时,系统先检查指定的复合索引文件是否存在 若存在,在此文件中增加一个索引标记,若不存在,则建立此索 引文件。 (2)标记名的命名规则与变量名的命名规则相同 (3)单索引文件只能按升序排列,而复合索引文件既可以按升序排 列也可以按降序排列,选择 DESCENDING为降序,选择 ASCENDING为升序,缺省时约定为升序。 2021-2-20 Visual Foxpro60程序设计
2021-2-20 Visual FoxPro 6.0程序设计 10 如果在TAG <标记名>参数后包含可选项[OF <复合索引文件名>] 子句,则可以创建非结构复合索引文件。 [ASCENDING | DESCENDING]:ASCENDING 指定复合索引文 件为升序,这是默认值。DESCENDING 指定复合索引文件为降 序。 [UNIQUE]:对于一个索引关键值,只有第一个满足该值的记录 包含在.IDX文件或.CDX标识中。利用UNIQUE子句可以避免显示 或访问记录的重复值。 说明: ⑴执行上述命令时,系统先检查指定的复合索引文件是否存在, 若存在,在此文件中增加一个索引标记,若不存在,则建立此索 引文件。 ⑵标记名的命名规则与变量名的命名规则相同。 ⑶单索引文件只能按升序排列,而复合索引文件既可以按升序排 列也可以按降序排列,选择DESCENDING为降序,选择 ASCENDING为升序,缺省时约定为升序