您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 数据通信与网络 > vf二级四川省计算机考试第5章
第五章排序、查询和多表操作5.1排序•排序是指将当前表按照指定的排序字段(又称关键字)重新排列记录顺序,并将排序结果存储在一个新的表文件中。•分类:将关键字段值相同的记录按顺序存放在一起,生成一个新的表文件。•格式:SORTTO表文件名ON字段名1[/A|/D][/C][,字段名2[/A|/D][/C]...][范围][FOR逻辑表达式][WHILE逻辑表达式][FIELDS字段名列表•功能:对当前选定的表排序,并将排序后的记录输出到新表中。参数描述:•表文件名:指定经过排序后所生成的新表的表文件名。•ON字段名1:在当前选定的、要排序的表中指定关键字段,字段的内容和数据类型决定了记录在新表中的顺序。•[/A|/D][/C]:指定排序顺序(升序或降序)。/A指定为按升序排序,/D指定按降序排序。如果在字符型字段名后面包含/C,则忽略大小写。可以把/C选项与/A或/D选项组合起来。•[范围]:指定需要排序记录的范围。默认范围为ALL。•[FOR逻辑表达式]:在当前表中指定排序中只包含逻辑条件为“真”的记录。•[WHILE逻辑表达式]:指定一个条件,在当前表中只要逻辑表达式的计算值为“真”,则依据此条件,排序中包含这条记录。•[FIELDS字段名列表]:指定用SORT命令排序时所创建的新表中要包含的原表中的字段。如果省略FIELDS子句,新表中将包含原表中的所有字段。5.2索引1、索引的概念•索引:是由指针构成的文件,这些指针逻辑上按照索引关键字值进行排序。扩展名.CDX。•功能:索引作为一种排序机制,是一个记录号的列表,它存储一组记录指针,指向待处理的记录,索引并没有改变表中所存储数据的顺序,它只改变读取每条记录的顺序,从而确定记录的处理顺序。•作用:按特定的顺序定位、查看、操作表中记录。•注意:一个表可以建立多个索引,每一个索引代表一种处理记录的顺序。2、索引的类型•主索引、侯选索引、普通索引、唯一索引A、主索引:•在指定字段或表达式中不允许出现重复值的索引。建立主索引的字段可以看作是主关键字,一个表只能有一个主关键字,所以一个表只能创建一个主索引。B、侯选索引:•像主索引一样要求字段值的唯一性并决定了处理记录的数据库表和自由表中均可以每个表建立多个侯选索引。建立侯选索引的字段可以看作是侯选关键字。C、普通索引:•也可以决定记录的处理顺序,但是允许字段中出现重复值。在一个表中可以加入多个普通索引。D、唯一索引:•为保持同早期版本的兼容性,还可以建立一个唯一索引,以指定字段的首次出现值为基础,选定一组记录,并对记录进行排序。5.3索引的建立1、单索引文件的建立•格式:INDEXON索引关键表达式TO索引文件名[UNIQUE]FOR条件[ADDITIVE]•功能:对当前表中满足条件的记录,按索引表达式的值建立一个索引文件,并打开此索引文件,其缺省的文件扩展名为.IDX。•参数描述:•索引关键表达式:用以指定记录重新排序的字段或表达式。•索引关键表达式可以是字段名,也可以是含有当前表中字段的合法表达式。表达式值的数据类型可以是字符型、数值型、日期型、逻辑型。若在表达式中包含有几种类型的字段名,常常需要使用类型转换函数将其转换为相同类型的数据。•[UNIQUE]:指定UNIPUE子句时,若有多条记录的索引关键表达式的值相同时,则只把第一次遇到的记录进行排序加入到索引文件中;省略该子句时,则把所有遇到的记录值都加入到索引文件中。•[ADDITIVE]:若省略ADDITIVE子句,当为一个表建立新的索引文件时,除结构复合索引文件外,所有其它打开的索引文件都将会被关闭;若选择此选择项,则已打开的索引文件仍然保持打开状态。•FOR条件:指定一个条件,只显示和访问满足这个条件的表达式条件的记录,索引文件只为那些满足条件的表达式的记录创建索引关键字。2、复合索引文件的建立•复合索引文件是由索引标记组成的,每个复合索引文件可包含多个索引标记,每个索引标记都有标记名,一个索引标记相当于一个单索引文件。•格式:INDEXON索引关键表达式TAG标记名[OF复合索引文件名][FOR条件][ASCENDING|DESCENDING][UNIQUE][ADDITIVE]•功能:建立和修改复合索引文件,并打开此索引文件,其缺省的文件扩展名为.CDX。•参数描述:•索引关键表达式、[FOR条件]、[ADDITIVE]:同上。•TAG标记名[OF复合索引文件名]:创建一个复合索引文件。在TAG标记名参数中不包含可选的[OF复合索引文件名]子句时,便可以创建结构复合索引文件。•[ASCENDING|DESCENDING]:ASCENDING指定复合索引文件为升序,这是默认值。DESCENDING指定复合索引文件为降序。•[UNIQUE]:对于一个索引关键值,只有第一个满足该值的记录包含在.IDX文件或.CDX标识中。利用UNIQUE子句可以避免显示或访问记录的重复值。•说明:•⑴执行上述命令时,系统先检查指定的复合索引文件是否存在,若存在,在此文件中增加一个索引标记,若不存在,则建立此索引文件。•⑵标记名的命名规则与变量名的命名规则相同。•⑶单索引文件只能按升序排列,而复合索引文件既可以按升序排列也可以按降序排列,选择DESCENDING为降序,选择ASCENDING为升序,缺省时约定为升序。•⑷表的显示和访问顺序只由一个索引文件(主控索引文件)和标识(主控标识)控制。有一些命令使用主控索引文件和标识搜索记录,但是在修改表时,所有已打开的索引文件都将被更新。3、在项目管理器中建立索引•(1)利用表设计器的字段选项卡建立索引文件第一步:选择【数据】选项卡第二步:选择要建立索引的表第三步:单击【修改】按钮系统打开表设计器第四步:选择要建立索引的关键字段第五步:在“索引”下拉列表框中选择“无”、“升序”、“降序”,建立索引第六步:单击【确定】按钮索引选项卡•(2)利用表设计器的索引选项卡建立索引文件移动按钮排序按钮在此框中输入索引标记在此列表框中选择索引类型在此文本框中输入索引表达式在此输入条件表达式表达式生成按钮5.3索引的使用1、打开索引文件•1)在打开表时打开索引文件•复合索引文件在打开表时将自动被打开。•格式:USE表文件名INDEX索引文件名表[ORDER数值表达式/单索引文件名/[TAG]索引标记名[OF复合索引文件名]][ASCENDING/DESCENDING]•功能:打开指定的表,并且打开由索引文件名表指定的所有索引文件。•说明:虽然可以同时打开多个索引文件,但同一时间只能有一个单索引文件或是复合索引文件中的一个索引标识作为主控索引,记录的操作和显示由主控索引来控制。如果索引文件名表中排在第一位的是单索引文件,则该单索引就是主控索引,如果排在第一位的是复合索引文件,则还需要用ORDER子句规定主控索引,如果不使用ORDER子句,记录将仍然按记录号的顺序显示。•在ORDER子句中也可以使用单索引文件名、索引标记或数值表达式来规定主控索引。如:使用ORDER单索引文件名则规定一个单索引文件作为主控索引。•使用ORDER[TAG]索引标记[OF复合索引文件名]规定一个子索引文件作为主控索引,ORDER子句中的索引可以是结构复合索引文件中的索引标记,也可以是已经打开的非结构复合索引文件中的索引标记。•使用ORDER数值表达式规定主控索引,以数值表达式的值作为索引文件的序号,根据序号来确定主控索引文件。系统给打开的单索引文件和复合索引文件的索引标记编号的方法是:首先按照打开索引文件时的单索引文件名的排列顺序编号,再按照结构复合索引文件中索引标记建立的顺序编号,最后按照非结构复合索引文件中的索引标记建立的顺序编号。•(2)在打开表后打开索引文件•格式:SETINDEXTO[索引文件名表/?][ORDER索引号/复合索引文件名/[TAG]索引标记[OF复合索引文件名]][ASCENDING/DESCENDING][ADDITIVE]•功能:打开指定的索引文件或关闭索引文件。省略所有选项为关闭当前工作区中除结构复合索引文件外的所有索引文件。•参数描述:•索引文件名表:指定要打开的一个或多个索引文件。索引文件列表中可以包含多个单索引和复合索引文件。索引文件列表中,第一个索引文件成为主控索引,它控制记录的显示和访问。•?:显示打开对话框,从这个对话框中,可以选择和打开一个单索引文件。•[ORDER数值表达式]:指定一个索引文件或标识为主控索引文件,数值表达式指定在索引文件列表中出现的索引文件。•首先,按索引文件列表中出现的顺序给单索引文件编号;然后,按照创建标识的先后顺序,对复合索引文件中的标识编号;最后,按照创建文件的顺序对独立的复合索引文件中的标识进行编号。如果数值表达式为0,表中记录以物理顺序显示和访问,而索引文件保持打开状态。•[ORDER单索引文件名]:指定一个单索引文件为主控索引。•[ORDER[TAG]索引标记名[OF复合索引文件名]]:指定复合索引文件中的一个标识作为主控标识。标识名来自结构化复合索引文件或独立的复合索引文件。在打开的独立复合索引文件中,如果存在相同名称的标识,则要使用[OF复合索引文件名]指定标识所在的复合索引文件。•[ASCENDING/DESCENDING]:指定显示和访问表记录时,是以升序还是以降序进行。[ASCENDING/DESCENDING]子句要跟在ORDER子句的后面。•[ADDITIVE]:指定以前打开的索引文件(除结构化复合索引文件外),在发出SETINDEX命令打开另一个索引文件时,是否仍打开。如果没有该子句,将会关闭所有前面打开的文件。•说明:•在有索引文件的表中,记录的显示顺序和访问顺序可以由某个索引文件来决定。使用SETINDEX命令可以打开单索引文件和复合索引文件。如果一个表有结构化复合索引文件,打开表时该文件自动打开。•执行不带参数的SETINDEXTO命令,会关闭当前工作区中所有打开的索引文件(结构化复合索引文件除外)。•2、设置主控索引•如果在打开索引文件时未指定主控索引,打开索引文件之后需要指定主控索引,或者希望改变主控索引,可使用下面的命令。格式:SETORDERTO[数值表达式/单索引文件名/[TAG]索引标记[OF复合索引文件名][ASCENDING/DESCEN-DING]•功能:在打开的索引文件中指定主控索引。•参数描述:•数值表达式:指定主控索引或标识的编号。数值表达式指定的是在USE或SETINDEX中列出的索引文件或标识的序号。•单索引文件名:指定作为主控索引文件的单索引文件名。•[TAG]索引标记[OF复合索引文件名]:指定复合索引文件中的一个索引标识为主控索引标识名来自结构复合索引文件或任何打开的独立复合索引文件。如果在各打开的独立复合索引文件中存在相同的标识名,应使用[OF复合索引文件名]来指定包含此标记的复合索引文件。•[ASCENDING/DESCENDING]:该参数用法同前。•说明:•⑴如果命令中不使用任选项,只写SETORDERTO,那么不会指定主索引,记录仍按照记录号的顺序显示,但并未关闭索引文件。•⑵VFP允许在SETORDER命令中使用ASCENDING和DESCENDING暂时转换主控索引的顺序,但它不同于SORTON命令中的ASCENDING和DESCENDING。•⑶当数值表达式的值为0时,或省略所有可选项,则恢复表文件的自然顺序,但不关闭索引文件。•⑷在打开的索引文件中,只有主控索引文件是有效。3、索引文件的重建或更新•当表中的记录当生变化时,如果未打开索引文件,索引文件(结构复合索引文件除外)不会自动更新,要更新这些索引文件,可用下列命令:•格式:REINDEX•功能:重建当前打
本文标题:vf二级四川省计算机考试第5章
链接地址:https://www.777doc.com/doc-4010293 .html