




已阅读5页,还剩5页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
13.表的索引(1)索引及索引文件的概述索引是以索引文件的形式存在的,它根据指定的索引关键字表达式建立的。索引文件可以看成索引关键字的值与记录号之间的对照表,关键字可以是一个字段,也可以是几个字段的组合。在建立索引文件时,把表所有记录的索引关键字表达式的值按指定顺序排序,并把每个索引关键字表达式值与该值在表中所对应的记录对应起来,保存在索引文件中。索引文件必须与原表一起使用,查询时根据索引关键字表达式的值先在索引文件中找到某字段所在的记录号,然后再到表里直接定位。这样的查找方式使顺序查找和随机查找都有较高的效率。打开索引文件时,将改变表中记录的逻辑顺序,但并不改变表中记录的物理顺序。一个表文件可建立多个索引文件,也可同时打开多个索引文件,但在同一时间内只有一个索引起作用,这个索引称为主控索引。Visual FoxPro系统中支持两种不同的索引文件类型,即单索引文件和复合索引文件。单索引文件是根据一个索引关键字建立的索引文件,文件扩展名为.IDX,它可用INDEX命令的各种形式建立。单索引文件分为标准和压缩两种类型。复合索引文件是指索引文件中可以包含多个索引标识的扩展名为.CDX。每个索引标识与单索引文件类似,也可以根据一个索引关键字表达式(或关健字)建立。每一个索引标识均有一个特殊的标识名(TAG)。标识名由字母或下划线开头,由字母、数字或下划线组成,长度不超过10个字符。用户可以利用标识名来使用标识,向复合索引文件中追加标识。复合文件中标识的数目,仅受内存和磁盘空间的限制。复合索引文件又有两种:一种是独立复合索引文件;另一种是结构复合索引文件。结构复合索引文件是由Visual FoxPro自动命名的,与相应的表文件同名,扩展名为.CDX。当Visual FoxPro打开一个表时,便自动查找一个结构复合索引文件,如果找到便自动打开,该索引文件随表文件同时打开和同时关闭。独立复合索引文件不与表文件同名,扩展名为.CDX。在打开表时不会自动打开此索引文件,由命令指定打开。索引可分为下列四种类型:1)主索引主索引是一个永远不允许在指定字段和表达式中出现重复值的索引。它也是在数据库表的永久关联中创建参照完整性时主表和被引用表使用的索引。每一个表只能建立一个主索引,只有数据库表才能建立主索引。2)侯选索引侯选索引也是一个不允许在指定字段和表达式中出现重复值的索引。数据库表和自由表都可以建立侯选索引,一个表可以建立多个侯选索引。主索引和侯选索引都存储在.CDX结构复合索引文件中,不能存储在于独立复合索引文件和单索引文件中,因为主索引和侯选索引都必须与表文件同时打开和同时关闭。3)唯一索引系统只在索引文件中保留第一次出现的索引关键字值。数据库表和自由表都可以建立唯一索引。4)普通索引是一个最简单的索引,允许关键字值的重复出现,适合用来进行表中记录的排序和查询,也适合于一对多永久关联中“多”的一边(子表)的索引。数据库表和自由表都可以建立普通索引。普通索引和唯一索引可以存储在.CDX独立复合索引文件和.IDX单索引文件中。(2)索引文件的建立1)命令方式【格式】INDEX ONTO|TAGOFFORCOMPACTASCENDING|DESCENDINGUNIQUEADDITIVE【功能】对当前表文件按指定的关键字建立索引文件。【说明】:指定建立索引文件的关键字表达式,可以是单一字段名,也可以是多个字段组成的字符型表达式,表达式中各字段的类型只能是数值型、字符型和日期型和逻辑型。当表达式是单个字段名时,字段类型不用转换;应转换成同一类型的表达式。TAG:此选项只对建立复合索引文件时有效,指定建立或追加索引标识的标识名。OF:指定独立复合索引文件名。若有此选项,表示在指定的独立复合索引文件中追加一个索引标识,若指定的独立复合索引文件不存在,系统将自动建立指定的文件。若没有此选项,表示在结构复合文件中追加一个索引标识,若结构复合索引文件不存在,系统将自动建立结构复合索引文件。FOR:表示只对满足条件的记录建立索引。COMPACT:此选项只对单索引文件有效,表示建立压缩索引文件。ASCENDING|DESCENDING:ASCENDING表示按升序建立索引,DESCENDING表示按降序建立索引。缺省时,按按升序建立索引。单索引文件不能选用DESCENDING选项。UNIQUE:表示建立的是唯一索引。ADDITIVE:表示保留以前打开的索引文件。否则,除结构复合索引文件外,以前打开的其他索引文件都将被关闭。新建的索引文件自动打开,并开始起作用。【例1】对STUD.DBF表文件建立出生日期单索引文件STUD.IDX。USE STUDINDEX ON 出生日期 TO STUD【例2】对表文件STUD.DBF,建立一个基于出生日期字段的结构复合索引文件。USE STUDINDEX ON 出生日期 TAG 出生日期 DESCENDING【例3】在表文件STUD.DBF的结构复合索引文件中,按学号追加一个标识。USE STUDINDEX ON 学号 TAG 学号【例4】在表文件STUD.DBF的结构复合索引文件中,先按性别再按学号追加一个标识XBXH。USE STUDINDEX ON 性别+学号 TAG XBXH【例5】在表文件STUD.DBF中,先按性别再按是否团员建立一个独立复合索引文件SXBTY.CDX。USE STUDINDEX ON 性别+IIF(是否团员,团员,非团员) TAG 性别团员 OF SXBTY2)菜单方式打开表文件。选择【显示】|【表设计器】命令,打开表设计器对话框,选择“索引”标签。在索引名中输入索引标识名,在类型的下拉列表框中确定一种索引类型,在表达式中输入索引关键字表达式,在筛选中输入确定参加索引的记录条件,在排序序列下默认的是升序按钮,单击可改变为降序按钮。确定好各项后,选择“确定”,关闭表设计器,同时索引建立完成。同样的方法也可以将以前建立的索引调出,利用表设计器上的“插入”或“删除”按钮进行插入或删除。注意:用表设计器建立的索引都是结构复合索引文件。(3)索引文件的打开【格式1】USEINDEXORDER|TAGOFASCENDING|DESCENDING【功能】打开指定的表文件及相关的索引文件【说明】:INDEX|?:表示打开的索引文件;如果选择“?”,则系统将出现“打开”对话框,供用户选择索引文件名;如果中的第一个索引文件是单索引文件,则它是主索引文件,若第一个索引文件是复合索引文件,则表文件的记录将以物理顺序被访问。:指定要打开的索引文件,索引文件中的文件扩展名可以省略,但如果存在同名的单索引文件和复合索引文件,必须带扩展名。中的单索引文件和复合索引文件的标识有一个唯一的编号,编号最小值为1,编号规则为:先将单索引文件按它们在中的顺序编号,再将结构复合索引文件按标识产生的顺序连续编号,最后将独立复合索引文件中的标识先按它在中的顺序,再按标识产生的顺序连续编号。ORDER子句:指定主索引。选择此选项时,主索引文件将不是中的第一个单索引文件,而是此选项指定的单索引文件或标识。ORDER子句中各选项的含义如下:指定主索引的编号,若的值为0,表示不设主索引。指定的单索引文件设置为主索引。TAGOF:表示将中的指定标识作为主索引。OF缺省表示为结构复合索引文件。ASCENDING|DESCENDING:表示主索引被强制以升序或降序索引;缺省此选项,主索引按原有顺序打开。【格式2】SET INDEX TOORDER|TAGOFASCENDING|DESCENDINGADDITIVE【功能】在已打开表文件的前提下,打开相关索引文件。【说明】ADDITIVE:表示保留以前打开的索引文件。否则,除结构复合索引文件外,以前打开的其他索引文件都将被关闭。(4)索引文件的关闭【格式1】USE【功能】关闭当前工作区中打开的表文件及所有索引文件。【格式2】SET INDEX TO【功能】关闭当前工作区中打开的所有单索引文件和独立复合索引文件。【格式3】CLOSE INDEXS【功能】关闭当前工作区中打开的所有单索引文件和独立复合索引文件。注意:结构复合索引文件不能用以上命令关闭,它随表文件的打开而打开,随表文件的关闭而关闭。(5)索引的删除1)标识的删除【格式】DELETE TAGOF,OF.或:DELETE TAG ALLOF【功能】从指定的复合文件中删除标识【说明】OF:指定复合索引文件名,若缺省,则为结构复合索引文件。2)单索引文件的删除【格式】DELETE FILE【功能】删除指定的单索引文件【说明】关闭的索引文件才能被删除,文件名必须带扩展名。【例】删除表文件STUD.DBF的单索引文件STUD.IDX及结构复合索引文件中的所有标识。DELETE FILE STUD.IDXUSE STUDDELETE TAG ALL(6)索引查询(FIND、SEEK)1)菜单方式首先打开表文件。选择【显示】|【浏览】命令。选择【表】|【转到记录】|【定位】命令,打开定位记录对话框。在“作用范围”下拉列表框中选择查询范围,在FOR或WHILE框中输入查询条件,选择定位按钮。系统将指针定位于符合条件的第一条记录上。2)索引查询(FIND、SEEK)LOCATE命令用于按条件进行顺序定位,无论索引文件是否打开都可使用。在打开索引文件后,还可以用FIND、SEEK命令进行快速检索。aFIND命令【格式】FIND/【功能】在表文件的主控索引中查找关键字值与或相匹配的第一个记录。【说明】必须打开相应的库文件、主索引文件。查询字符串,字符串可以不用定界符括起来,但前后有空格的,则必须要括进来。查询常数,必须使用索引关键字的完整值。允许查询字符型内存变量,但必须使用宏替换函数。由于索引文件中关键字表达式值相同的记录总是排在一起的,可用SKIP、DISP命令来逐个查询。查询完满足条件的记录后,不能自然给出提示,常借助于EOF()函数来判断查询是否完成。多关键字查询,建立索引时STR函数若没有指定小数位,则应补齐不足10位的空格。如果用SET EXACT ON命令,则匹配必须是精确的。即FIND命令中的查询内容必须与记录的关键字段值完全相等。如果用SETEXACT OFF命令,则匹配可以是不精确的,即只要FIND命令中的查询内容与记录的关键字段值的左侧相等即可。【例】打开表文件STUD.DBF,查找姓“赵”的记录。USE STUDSET ORDER TO 姓名 FIND 赵bSEEK命令【格式】SEEK【功能】在表文件的主索引中查找关键字值与值相匹配的第一个记录。【说明】SEEK命令可以查找字符型、数值型、日期型、逻辑型表达式的值。SEEK命令中的表达式的类型必须与索引表达式的类型相同。可以查找字符、数值、日期和逻辑型字段的值。内存变量可以直接进行查询,不用进行宏替换。表达式为字符串时,必须用定界符括起来。日期常量也必须用大括号括起来。表达式可以为一复杂的表达式,计算机先计算表达式的值,然后用其值进行查询。由于索引文件中关键字表达式值相同的记录总是排在一起的,可用SKIP、DISP命令来逐个查询。如果用SET EXACT ON命令,则匹配必须是精确的。【例】用SEEK命令在STUD.DBF中查找记录。USE STUDINDEX ON 是否团员 TAG 是否团员SET ORDER TO 姓名 SEEK孙例题(1)visual FoxPro中的索引有_。A主索引、候选索引、普通索引、视图索引B主索引、次索引、惟一索引、普通索引C主索引、次索引、候选索引、普通索引D主索引、候选索引、惟一索引、普通索引【解析】本题考查的知识点是visual FoxPro中的索引。Visual FoxPro中包括4种索引,分别为主索引、候选索引、惟一索引、普通索引。选项A中的视图索引错误;选项B、C中的次索引错误。【答案】D(2)在Visual FoxPro中,一个表可以创建_个主索引。A1 B2 C3 D若干【解析】本题考查知识点是Visual FoxPro中的主索引。在Visual FoxPro中,建立主索引的字段可以看作是主关键字,一个表只能有一个主关键字,所以一个表可以创建一个主索引。因此正确答案为A。【答案】A(3)主索引可确保字段中输入值的_性。A惟一 B重复 C多样 D兼容【解析】本题考查的知识点是主索引的特性。主索引在指定字段或表达式中不允许出现重复值的索引,这种索引可以起到主关键字的作用,所谓不允许出现重复值是指建立索引的字段值不允许重复,即惟一的特性。【答案】A(4)惟一索引中的“惟一性”是指_的惟一。A字段值 B字符值 C索引项 D视图项【解析】本题考查的知识点是惟一索引的特性。在Visual FoxPro中,惟一索引是为了保持同早期版本的兼容性,它的“惟一性”是指索引项的惟一,而不是字段值的惟一。选项A中字段值惟一是指主索引中字段值惟一。选项B和D说法错误。【答案】C(5)在Visual FoxPro中的4个索引中,一个表可以建立多个_。A主索引、候选索引、惟一索引、普通索引B候选索引、惟一索引、普通索引C主索引、候选索引、惟一索引D主索引、惟一索引、普通索引【解析】本题考查的知识点是visual FoxPro中的索引。在Visual FoxPro中,由于主索引中不允许出现重复值,一个表只能有一个主关键字,因此一个表只可以建立一个主索引。建立候选索引的字段可以看作是候选关键字,所以一个表可以建立多个候选索引。惟一索引中的惟一是指索引项的惟一,不是指字段值的惟一,因此一个表中可以建立多个索引。普通索引可以决定记录的处理顺序,它不仅允许字段中出现重复值,并且索引项也允许出现重复值,因此一个表中可以建立多个普通索引。本题选项A中的“主索引”错误;选项C中多了主索引,缺少普通索引;选项D中多了主索引,缺少候选索引。【答案】B(6)下列更改索引类型的操作方法正确的是_。A打开表设计器,选定“字段”选项卡,从“索引”下拉列表中选择B打开表设计器,选定“索引”选项卡,在“索引名”下拉列表中选择C打开表设计器,选定“表”选项卡,在“索引名”下拉列表中选择D打开表设计器,选定“索引”选项卡,在“类型”下拉列表中选择【解析】本题考查的知识点是更改索引类型的操作。正确的操作方法是打开表设计器,选定“索引”选项卡,在“类型”下拉列表中选择。选项A中“字段”选项卡下的索引用未设置索引的排序方式;选项B中的“索引名”不能用来定义索引的类型。它只是索引的名称;选项C中“表”选项卡下没有“索引名”项。因此正确答案为D【答案】D(7)在Visual FoxPro中,结构复合压缩索引文件的特点是-。A在打开表时自动打开B在同一索引文件中能包含多个索引方案,或索引关键字C在添加、更改或删除记录时自动维护索引D以上答案均正确【解析】本题考查的知识点是结构复合压缩索引文件的特点。在VisualFoxPro中,结构复合压缩索引文件的特点是:在打开表时自动打开;在同一索引文件中能包含多个索引方案,或索引关键字;在添加、更改或删除记录时自动维护索引。因此正确答案为D。【答案】D(8)在Visual FoxPro中,SKIP命令是按_定位,即如果使用索引时,是按_的顺序定位。【解析】本题考查的知识点是SKIP命令的使用。在VisualFoxPro中。SKIP命令是按逻辑顺序定位,即如果使用索引时,是按索引项的顺序定位的。【答案】逻辑顺序,索引项(9)在Visual FoxPro中,创建索引的命令是_。【解析】本题考查的知识点是创建索引的命令。在VisualFoxPro中,创建索引的命令是INDEX。【答案】INDEX(10)在Visual标FoxPro中,用命令可以创建_索引,但不可以创建_索引。【解析】本题考查的知识点是利用命令创建索引。在VisualFoxPro中,利用命令可以创建普通索引、惟一索引(UNIQUE)和候选索引(CANDIDATE)。这是因为表设计器中指定一个主索引实际就是指定了一个主关键字。【答案】普通索引、惟一索引、候选索引,主索引(11)在Visual FoxPro中,惟一索引中的“惟一”是指_。【解析】本题考查的知识点是惟一索引中的“唯一”的含义。在VisualFoxPro中,惟一索引与字段值的惟一性无关、即建立了惟一索引的字段,它的字段值可以重复,“惟一”是指在使用相应的索引时,重复的索引字段值只有唯一一个值出现在索引项中。【答案】在使用相应的索引时,重复的索引字段值只有惟一一个值出现在索引项中(12)Visual FoxPro索引是_。【解析】本题考查的知识点是索引的概念。在Visual FoxPro中,索引是由指针构成的文件,这些指针逻辑上按索引关键字值进行排序。【答案】由指针构成的文件,这些指针逻辑上按索引关键字值进行排序(13)在Visual FoxPro中,打开索引文件的命令格式是_。【解析】本题考查的知识点是打开索引文件的命令格式。在VisualFoxPro中,打开索引文件的命令格式是:SET INDEX TO 其中IndexFileList是用逗号隔开的索引文件列表。【答案】SET INDEX TO (14)候选关键字是指_。【解析】本题考查的知识点是候选关键字的概念。在Visual FoxPro中,如果一个字段的值或几个字段的位能够惟一标识表中的一条记录,则这样的字段称为候选索引。【答案】如果一个字段的值或几个字段的值能够惟一标识表中的一条记录,则这样的字段称为候选索引。(15)在Visual FoxPro中,复合索引文件包括_和_。【解析】本题考查的知识点是复合索引文件。在Visual FoxPro中,复合索引文件包括结构复合索引文件和非结构复合索引文件。【答案】结构复合索引文件和非结构复合索引文件(16)结构复合索引文件的主名与_相同,它随_的打开而打开,在删除记录时会自动维护。【解析】本题考查的知识点是结构复合索引文件。结构复合索引文件是复合索引文件一种。结构复合索引文件的主名与表的主名相同,它随表的打开而打开、在删除记录时会自动维护。【答案】表的主名,表(17)非结构复合索引文件在-时用户为义取了名字,打开非结构复合索引文件要使用_或_,因而使用很少。【解析】本题考查的知识点是非结构复合索引文件。非结构复合索引文件在定义复合索引文件时用户为其取了名字,打开非结构复合索引文件要使用SETINDEX命令或USE命令中的INDEX短语,因而使用很少。【答案】定义复合索引文件,SETINDEX命令,USE命令中的INDEX短语(18)单击表单设计器中的“索引”选项卡上的-按钮,可以在当前行插入一个空行,以定义新的索引。【解析】本题考查的知识点是利用选项卡上按钮定义新索引。在表单设计器的索引选项卡上共有4个按钮:确定、取消、插入、删除。“确定按钮用来确认所做的操作;“取消”按钮用来取消所做的操作;“插入”按钮用来添加新索引;“删除”按钮用来删除索引。根据题意,此题答案为“插入”。【答案】插入14.多表的操作迄今所讲述的对表的操作都是在一个工作区进行的,每个工作区最多只能打开一个表文件,用USE命令打开一个新的表,同时也就关闭了前面已打开的表。在实际应用中,用户常常需要同时打开多个表文件,以便对多个表文件的数据进行操作。为了解决这一问题,VisualFoxPro引入了工作区的概念。Visual FoxPro允许用户在表间建立临时关系和永久关系。15.工作区与多个表(1)工作区和当前工作区Visual FoxPro能同时提供32767个工作区。系统默认值为1区。在任意时刻,只有一个工作区是当前工作区,用户只能在当前工作区对打开的当前库进行操作。每一个工作区都可以并且只能打开一个数据库文件。同一个数据库文件不允许同时在多个工作区打开,但在其它工作区中被关闭之后,可以在任意一个工作区中被打开。各工作区中打开的数据库彼此相互独立(指针不受影响)。(2)选择当前工作区每一个工作区用工作区号或别名来标识。1)工作区号利用数字132767来标识32767个不同的工作区。2)别名前10工作区用AJ10个字母来标识。采用该工作区中已打开的数据库的库名来作别名用户自己定义【命令格式】:USE 数据库名 ALIAS别名【功能】:打开数据库文件并为该数据库起一个别名。【说明】:给数据库起了别名后,数据库名就不是默认的别名了。3)工作区的选择当系统启动时,1号工作区是当前工作区,若想改变当前工作区,则可使用SELECT命令来转换当前工作区。【命令格式】:SELECT/【功能】:选择一个工作区作为当前工作区。【说明】:|:指定当前工作区。选择工作区时,可以直接指定区号,也可以通过别名指定工作区,二者是等效的。别名可以是系统规定的别名,也可以是用户规定的别名,甚至可以用已打开的表名替代工作区别名。此命令允许选用“0”号工作区。如果指定“0”,则表示选用当前未使用过的编号最小的工作区作为当前工作区。执行该命令后,对任何工作区中的表及记录指针均不发生影响,仅实现各个工作区之间切换。【例1】在1号和2号工作区内分别打开ST.DBF和SE.DBF表文件,并选择1号工作区为当前工作区。SELECT 1 &或SELECT AUSE STSELECT 2USE SESELECT 1【例2】在1号和2号工作区打开STUD.DBF和SC.DBF,在1号工作区内查看当前记录的学号、姓名、性别、出生日期、课程号、成绩等字段内容。SELECT AUSE STUD &在一号工作区中打开STUDSELECT BUSE SC &在二号工作区中打开SCSELECT A &选择1号工作区为当前工作区DISPLAY 学号,姓名,性别,出生日期,B-课程号,SC.成绩16.表的关联(1)关联的概述所谓表文件的关联是把当前工作区中打开的表与另一个工作区中打开的表进行逻辑连接,而不生成新的表。当前工作区的表和另一工作区中的打开表建立关联后,当前工作区是表的记录指针移动时,被关联工作区的表记录指针也将自动相应移动,以实现对多个表的同时操作。在多个表中,必须有一个表为关联表,此表常称为父表,而其他的表则称为被关联表,常称为子表。在两个表之间建立关联,必须以某一个字段为标准,该字段称为关键字段。表文件的关联可分为一对一关联、一对多关联和多对多关联。(2)表文件关联的建立1)一对一关联的建立命令方式【格式】SET RELATION TO|INTO|ADDITIVE【功能】将当前工作区的表文件与(或工作区号)指定的工作区中的表文件按或建立关联。【说明】当用建立关联时,关键字必须是两个表文件共有字段,且别名表文件已按关键字段建立了索引文件,并已指定关键字段为主索引。当父表文件的记录指针移动时,子表文件的记录指针根据主索引文件指向关键字段值与父表文件相同的记录。如果子表中没有与关键字段值相同的记录,记录指针指向文件尾,EOF()为.T.。当按建立关联时,别名表不需要打开索引文件,两个表文件按照记录号相联系,父表文件的记录指针移动时,子表文件的记录指针移至与数值表达式相等的记录上。若找不到此记录,记录指针
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 沥青渣子销售合同范本
- 合作合同解读与案例
- 快递物料采购合同范本
- 混凝土切块采购合同范本
- 酒店楼层转租合同范本
- 鸭场赔偿合同范本
- 武汉租商铺合同范本
- 土地勘察合同范本
- 护栏制作安装合同范本
- 防疫运输合同范本简单
- 生物制品生产工艺过程变更管理技术指导原则
- 建筑施工现场签证单(模板)
- GBZ(卫生) 49-2014职业性噪声聋的诊断
- GB/T 9729-2007化学试剂氯化物测定通用方法
- GB/T 7588.2-2020电梯制造与安装安全规范第2部分:电梯部件的设计原则、计算和检验
- GB/T 13560-2017烧结钕铁硼永磁材料
- 三视图及尺寸标注课件
- 混凝土配合比验证检验委托书模板
- 住房公积金投诉申请书
- 众辰变频器说明书3400
- 小学教师量化考核表
评论
0/150
提交评论