第4章数据的检索、统计与多工区操作 学习要点 1、数据的分类和索引 2、记录的查找定位; 3、数据的统计和计算 4、多工作区操作 2021-2-23 Visual foxpro6.0程序设计
2021-2-23 Visual FoxPro 6.0程序设计 1 学习要点 1、数据的分类和索引; 2、记录的查找定位; 3、数据的统计和计算; 4、多工作区操作。 第4章 数据的检索、统计与多工作区操作
数据的检索、统计与多工作区操作 41数据分类排序 42数据的索引 43数据的查询 44数据的统计 45多工作区操作 小结 返回 退出 2021-2-23 Visual Foxpro6.0程序设计
2021-2-23 Visual FoxPro 6.0程序设计 2 第4章 数据的检索、统计与多工作区操作 4.1 数据分类排序 4.2 数据的索引 4.3 数据的查询 4.4 数据的统计 4.5 多工作区操作 小结 返回 退出
4.1数据分类排序 将关键字段值相同的记录按顺序存放在一起,生成个新 的表文件 格式: SORT TOON|ADC]ADC]… ASCENDINGDESCENDINGI| FIELDS LIKE| FIELDS EXCEPT:指定经过排序后所生成的新表的表文件名 ON:在当前选定的、要排序的表中指定关键字段 字段的内容和数据类型决定了记录在新表中的顺序。 IA|DC:指定排序顺序(升序或降序)。A指定为按升序 排序,D指定按降序排序。如果在字符型字段名后面包含e,则 忽略大小写。可以把/C选项与/A或/选项组合起来。 2021-2-23 Visual Foxpro60程序设计 返
2021-2-23 Visual FoxPro 6.0程序设计 3 4.1 数据分类排序 分类:将关键字段值相同的记录按顺序存放在一起,生成一个新 的表文件。 格式:SORT TO ON [/A | /D] [/C] [, [/A | /D] [/C] ...] [ASCENDING|DESCENDING] [] [FOR ] [WHILE ] [FIELDS | FIELDS LIKE | FIELDS EXCEPT ] 功能:对当前选定的表排序,并将排序后的记录输出到新表中。 参数描述: :指定经过排序后所生成的新表的表文件名。 ON :在当前选定的、要排序的表中指定关键字段, 字段的内容和数据类型决定了记录在新表中的顺序。 [/A | /D] [/C]:指定排序顺序(升序或降序)。/A指定为按升序 排序,/D指定按降序排序。如果在字符型字段名后面包含/C,则 忽略大小写。可以把/C选项与/A或/D选项组合起来。 返 回
LASCENDINGI:将所有不带/D的字段指定为升序排列 DESCENDING:将所有不带/A的字段指定为降序排列。如果 省略 ASCENDING和 DESCENDⅠNG参数,则排序默认为升序 范围>:指定需要排序记录的范围。默认范围为ALL。 FOR]:在当前表中指定排序中只包含逻辑条件 为“真”的记录 IWHILE的计算值为“真”,则依据此条件,排序中包含这条记 录 FIELDS]:指定用SORT命令排序时所创建的新 表中要包含的原表中的字段。如果省略 FIELDS子句,新表中将 包含原表中的所有字段。 IFIELDS LIKE:在新表中包含那些不与字段梗概框 架相匹配的原表字段。 2021-2-23 Visual Foxpro60程序设计
2021-2-23 Visual FoxPro 6.0程序设计 4 [ASCENDING]:将所有不带/D的字段指定为升序排列。 [DESCENDING]:将所有不带/A的字段指定为降序排列。如果 省略ASCENDING 和DESCENDING参数,则排序默认为升序。 []:指定需要排序记录的范围。默认范围为ALL。 [FOR ] :在当前表中指定排序中只包含逻辑条件 为“真”的记录。 [WHILE ]:指定一个条件,在当前表中只要的计算值为“真” ,则依据此条件,排序中包含这条记 录。 [FIELDS ]:指定用SORT命令排序时所创建的新 表中要包含的原表中的字段。如果省略FIELDS子句,新表中将 包含原表中的所有字段。 [FIELDS LIKE ]:在新表中包含那些与字段梗概框架相 匹配的原表字段。 [FIELDS EXCEPT ]:在新表中包含那些不与字段梗概框 架相匹配的原表字段
42数据的索引 索引文件有二种,单索引文件和复合索引文件,而复合索引文件 又可分为结构复合索引文件和非结构复合索引文件两种 VFP对结构复合索引文件提供了四种类型:主素引、候选素引、 唯一索引和普通索引。 主索引是指关键字段或索引表达式中不允许出现重复值的索引 主要用于主表或被引用的表,用来在一个永久关系中建立参照完 整性。一个表而言,只能创建一个主索引 候选索引是可以作主关键字的索引,因为它不包含Nul值或重复 值。在数据表和自由表中均可以为每个表建立多个候选索引 唯一索引不允许两个索引具有相同的索引值,这种要求与主索引 相同。为了保持与早期版本的兼容性,可以建立一个唯一索引, 以指定字段的首次出现值为基础,选定一组记录,并对记录进行 排序 普通索引可以用来对记录排序和搜索记录,它不强迫记录中的数 据具有唯一性。在一个表中可以有多个普通索引。 2021-2-23 Visual Foxpro60程序设计
2021-2-23 Visual FoxPro 6.0程序设计 5 4.2 数据的索引 索引文件有二种,单索引文件和复合索引文件,而复合索引文件 又可分为结构复合索引文件和非结构复合索引文件两种。 VFP对结构复合索引文件提供了四种类型:主索引、候选索引、 唯一索引和普通索引 。 主索引是指关键字段或索引表达式中不允许出现重复值的索引, 主要用于主表或被引用的表,用来在一个永久关系中建立参照完 整性。一个表而言,只能创建一个主索引。 候选索引是可以作主关键字的索引,因为它不包含Null值或重复 值。在数据表和自由表中均可以为每个表建立多个候选索引。 唯一索引不允许两个索引具有相同的索引值,这种要求与主索引 相同。为了保持与早期版本的兼容性,可以建立一个唯一索引, 以指定字段的首次出现值为基础,选定一组记录,并对记录进行 排序。 普通索引可以用来对记录排序和搜索记录,它不强迫记录中的数 据具有唯一性。在一个表中可以有多个普通索引
选择合适的索引类型可以以下列准则作为依据: 1、如果需要排序记录,以便显示、查询或打印,可以使用普通 索引、候选索引或主索引 2、如果要在字段中控制重复值的输入并对记录排序,则对数据 表可以使用主索引或候选索引,对自由表可以使用候选索引 3、如果准备设置关系,则可以依据表在关系中所起的作用来分 别使用普通索引、主索引或候选索引。 4.2.1建立索引 1、单索引文件的建立 格式: INDEX ONTO IUNIQUE|FOR ADDITIVE 功能:对当前表中满足条件的记录,按的值建立 个索引文件,并打开此索引文件,其缺省的文件扩展名为IDX 参数描述: :用以指定记录重新排序的字段或表达式 2021-2-23 Visual Foxpro60程序设计
2021-2-23 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-23 Visual Foxpro60程序设计
2021-2-23 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-23 Visual Foxpro60程序设计
2021-2-23 Visual FoxPro 6.0程序设计 8 分类与索引的区别 1、分类要生成一个新的表文件,记录的物理顺序发生了改变; 2、分类生成的表可以单独使用。 3、索引它并不生成新的表文件,仅仅是表中记录的逻辑顺序发生 了变化,但索引也要生成一个新的文件,即索引文件。 4、索引文件不能单独使用,它必须同表一起配合使用。 单索引文件总是按升序的顺序排列。对于一个表文件,允许建立 多个索引文件。 USE STUDENT INDEX ON 学号 TO XHSY LIST 当执行上述命令后 屏幕显示结果 按 学 号 排 序
2、复合索引文件的建立 复合索引文件是由索引标记组成的,每个复合索引文件可包含多 个索引标记,每个索引标记都有标记名,一个索引标记相当于 个单索引文件。 格式: INDEX ONTAGOF LASCENDING DESCENDINGI UNIQUEILADDITIVEI 功能:建立和修改复合索引文件,并打开此索引文件,其缺省的 文件扩展名为CDX。 参数描述: 、[FOR、[ ADDITIVE:与上相同 TAG[OF:创建一个复合索引文件 在TAG参数中不包含可选的[OF子 句时,便可以创建结构复合索引文件。 2021-2-23 Visual Foxpro60程序设计
2021-2-23 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-23 Visual Foxpro60程序设计
2021-2-23 Visual FoxPro 6.0程序设计 10 如果在TAG 参数后包含可选项[OF ] 子句,则可以创建非结构复合索引文件。 [ASCENDING | DESCENDING]:ASCENDING 指定复合索引文 件为升序,这是默认值。DESCENDING 指定复合索引文件为降 序。 [UNIQUE]:对于一个索引关键值,只有第一个满足该值的记录 包含在.IDX文件或.CDX标识中。利用UNIQUE子句可以避免显示 或访问记录的重复值。 说明: ⑴执行上述命令时,系统先检查指定的复合索引文件是否存在, 若存在,在此文件中增加一个索引标记,若不存在,则建立此索 引文件。 ⑵标记名的命名规则与变量名的命名规则相同。 ⑶单索引文件只能按升序排列,而复合索引文件既可以按升序排 列也可以按降序排列,选择DESCENDING为降序,选择 ASCENDING为升序,缺省时约定为升序