vfp-索引分析课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《vfp-索引分析课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- vfp 索引 分析 课件
- 资源描述:
-
1、本 节 内 容2.5表的索引表的索引 兴隆职教中心兴隆职教中心 詹亚萍詹亚萍 2016.05.19 第二章第二章 数据库与表的基本操作数据库与表的基本操作 表中记录的存储顺序由数据输入的前后顺序决定,表中记录的存储顺序由数据输入的前后顺序决定,以以记录号记录号标识,称为记录的标识,称为记录的物理顺序物理顺序。执行。执行LIST命令命令就可以看到刻录号。就可以看到刻录号。索引是索引是根据根据表中的某些表中的某些字段或表达式字段或表达式的值,建立一的值,建立一个按个按逻辑顺序逻辑顺序排列记录的索引文件。排列记录的索引文件。 索引不改变表中记录的物理顺序,而是另外建立一索引不改变表中记录的物理顺序,
2、而是另外建立一个基于索引表达式值的记录号列表。个基于索引表达式值的记录号列表。 索引可以索引可以加快查找的速度加快查找的速度;此外,如果要;此外,如果要建立表间建立表间联系联系,则必须先对建立联系的字段建立索引。,则必须先对建立联系的字段建立索引。2.5表的索引表的索引 VFP提供了提供了4种类型的索引种类型的索引:主索引、候选索引、普通索引和惟主索引、候选索引、普通索引和惟一索引。一索引。 1主索引主索引 作为主索引的关键字值是作为主索引的关键字值是惟一惟一的,不允许重复。表中可能不的,不允许重复。表中可能不只一个字段能惟一地确定一条记录,但一个表只能有一个主索只一个字段能惟一地确定一条记录
3、,但一个表只能有一个主索引,引,只有数据库表才能建立主索引只有数据库表才能建立主索引,自由表不能建立主索引。,自由表不能建立主索引。主索引通常作为主索引通常作为“一对一一对一”或或“一对多一对多”联系的联系的“一方一方”。 2候选索引候选索引 候选索引的关键字值也必须是候选索引的关键字值也必须是惟一惟一的,一个表可以建立多个的,一个表可以建立多个候选索引,数据库表和自由表都可以建立候选索引。当数据库候选索引,数据库表和自由表都可以建立候选索引。当数据库表无主索引时,可以指定一个候选索引作为表无主索引时,可以指定一个候选索引作为“一对一一对一”或或“一一对多对多”联系的联系的“一方一方”。2.5
4、.12.5.1索引的类型索引的类型 例如,假设在例如,假设在“学生档案学生档案.dbf”表中,有表中,有“身份证号身份证号”及及“学号学号”字段,可将字段,可将“身份证号身份证号”字段设置为主索引,将字段设置为主索引,将“学号学号”字段设字段设置为候选索引。置为候选索引。3普通索引普通索引普通索引允许关键字出现重复值,数据库表和自由表都可以建普通索引允许关键字出现重复值,数据库表和自由表都可以建立普通索引,一个表可以建立多个普通索引。普通索引通常作为立普通索引,一个表可以建立多个普通索引。普通索引通常作为“一对多一对多”联系的联系的“多方多方”。4惟一索引惟一索引惟一索引是指索引项惟一,但允许
5、索引关键字值不惟一,当出惟一索引是指索引项惟一,但允许索引关键字值不惟一,当出现重复值时,只有第一个关键字值的记录有效,而忽略其他重复现重复值时,只有第一个关键字值的记录有效,而忽略其他重复值的记录。惟一索引是为了兼容早期的版本而设置的。值的记录。惟一索引是为了兼容早期的版本而设置的。索引文件的类型是关于索引存储的问题。索引文件的类型是关于索引存储的问题。 结构化复合索引文件结构化复合索引文件 复合复合索引文件索引文件 (与表文件同名,自动打开和维护)(与表文件同名,自动打开和维护) (.CDX) 非结构化复合索引文件非结构化复合索引文件索引文件索引文件 (与表文件不同名,不能自动打开和维护)
6、(与表文件不同名,不能自动打开和维护) 独立独立索引文件(索引文件(.IDX) (文件名由用户指定,不能自动打开和维护)(文件名由用户指定,不能自动打开和维护) 1复合索引文件复合索引文件复合索引文件是包含一个或多个索引的文件复合索引文件是包含一个或多个索引的文件,其扩展名为其扩展名为.CDX。复合索引文件又分为结构化复合索引文件(与表文件同名)和非复合索引文件又分为结构化复合索引文件(与表文件同名)和非结构化复合索引文件(与表文件不同名)。结构化复合索引文件(与表文件不同名)。2.5.22.5.2索引文件的类型索引文件的类型表文件打开时,结构化复合索引文件随之表文件打开时,结构化复合索引文件
7、随之自动打开自动打开,表文件关,表文件关闭时,结构化复合索引文件随之关闭。闭时,结构化复合索引文件随之关闭。非结构化复合索引文件与表不同名,其名称由用户指定。只有非结构化复合索引文件与表不同名,其名称由用户指定。只有指定其名称才能打开非结构化复合索引文件。指定其名称才能打开非结构化复合索引文件。2独立索引文件独立索引文件独立索引文件只存放一个索引,其扩展名为独立索引文件只存放一个索引,其扩展名为.IDX。独立索引文件的名称由用户定义;一个表文件可以建立多个独独立索引文件的名称由用户定义;一个表文件可以建立多个独立索引文件;独立索引文件不会随着表文件打开而自动打开。立索引文件;独立索引文件不会随
8、着表文件打开而自动打开。3索引文件的小结索引文件的小结“复合复合”是指一个索引文件中包含多个索引(是指一个索引文件中包含多个索引(索引不是文件索引不是文件)。)。“独立独立”是指一个索引文件中只包含一个索引(是指一个索引文件中只包含一个索引(每个索引都是每个索引都是文件文件) 。VFP默认使用结构化复合索引文件,非结构化复合索引文件默认使用结构化复合索引文件,非结构化复合索引文件几乎没有用到。几乎没有用到。独立索引文件是早期版本的数据库管理系统的索引文件,独立索引文件是早期版本的数据库管理系统的索引文件,VFP为了兼容早期版本的数据库管理系统而保留了独立索引文件。为了兼容早期版本的数据库管理系
9、统而保留了独立索引文件。结构化复合索引文件是索引文件应用的重点。结构化复合索引文件是索引文件应用的重点。4索引的数据更新索引的数据更新若表文件打开,索引文件也打开,表数据的更新会反映到索若表文件打开,索引文件也打开,表数据的更新会反映到索引中,从而保证表与索引的数据同步匹配。引中,从而保证表与索引的数据同步匹配。若表文件打开,索引文件没有打开,表数据的更新不会反映若表文件打开,索引文件没有打开,表数据的更新不会反映到索引中,从而导致表与索引数据不相匹配。到索引中,从而导致表与索引数据不相匹配。鉴于以上理由,鉴于以上理由,VFP 6.0默认将建立的索引存放在结构化复合默认将建立的索引存放在结构化
10、复合索引文件中。在索引文件中。在“表设计器表设计器”中建立的索引是结构化复合索引文中建立的索引是结构化复合索引文件。件。 1建立结构复合索引建立结构复合索引 格式:格式:INDEX ON TAG FOR ASCENDING | DESCENDING【UNIQUE|CANDIDATE】 功能:对当前的表文件,按功能:对当前的表文件,按的值建立索引文件。的值建立索引文件。 说明:说明: ASCENDING或或DESCENDING:指定索引按升序或降序排列,:指定索引按升序或降序排列,默认升序默认升序。 UNIQUE或或CANDIDATE:指定索引类型是唯一索引还是候选索引,指定索引类型是唯一索引还
11、是候选索引,默认普通索引默认普通索引2.5.12.5.1表的索引命令表的索引命令【例例1】在职工简况表在职工简况表Zgjk.dbf中,使用命令建立中,使用命令建立“部门部门”字段建立索引,索引名称为:字段建立索引,索引名称为:bm,降序排列。,降序排列。命令窗口中,键入以下命令并执行。命令窗口中,键入以下命令并执行。USE Zgjk &打开职工简况表打开职工简况表INDEX ON 部门部门 TAG bm DESC &建立索引建立索引BROWSE&在浏览窗口中显示表记录在浏览窗口中显示表记录【练习练习1】在职工简况表在职工简况表Zgjk.dbf中,使用命令建立中,使用命令建立“性别性别”建立索引
12、,索引名称为:建立索引,索引名称为:xbINDEX ON 性别性别 TAG xb【练习练习2】在职工简况表在职工简况表Zgjk.dbf中,使用命令建立中,使用命令建立“基本基本工资工资”建立索引,索引名称为:建立索引,索引名称为:jbgz,降序排列。,降序排列。INDEX ON 基本工资基本工资 TAG jbgz DESC【练习练习3】在职工简况表在职工简况表Zgjk.dbf中,使用命令建立中,使用命令建立“出生出生日期日期”建立建立候选候选索引,索引名称为:索引,索引名称为:csrq,降序排列。,降序排列。 INDEX ON 出生日期出生日期TAG csrq DESC CAND【2013高考
13、高考】 以以“图书编号图书编号”为关键字建立降序的候选索为关键字建立降序的候选索引,索引名为引,索引名为BH。(用用Visual FoxPro命令)命令)INDEX ON 图书编号图书编号 TAG bhCANDIDATE【例例2】在职工简况表在职工简况表Zgjk.dbf中,使用命令建立中,使用命令建立“部门部门”和和“基本工资基本工资”两个字段的复合索引,索引名称为:部门工两个字段的复合索引,索引名称为:部门工资,要求先按资,要求先按“部门部门”降序排列,当降序排列,当“部门部门”相同时,按相同时,按“基本工资基本工资”降序排列。降序排列。在命令窗口中,键入以下命令并执行。在命令窗口中,键入以
14、下命令并执行。USE Zgjk &打开职工简况表打开职工简况表INDEX ON 部门部门+STR(基本工资基本工资) TAG 部门工资部门工资 DESC&建立复合索引建立复合索引BROWSE&在浏览窗口中显示表记录在浏览窗口中显示表记录注意:表达式通常用字符串运算符注意:表达式通常用字符串运算符“+”将几个字段连接,将几个字段连接,数据类型不同时必须用函数转换为相同的数据类型数据类型不同时必须用函数转换为相同的数据类型【练习练习1】在职工简况表在职工简况表Zgjk.dbf中,建立中,建立“部门部门”和和“性性别别”两个字段的复合索引,索引名称为:两个字段的复合索引,索引名称为:bmxb.IND
15、EX ON 部门部门+性别性别 TAG bmxb【练习练习2】在职工简况表在职工简况表Zgjk.dbf中,建立中,建立“部门部门”和和“出出生日期生日期”两个字段的复合索引,索引名称为:两个字段的复合索引,索引名称为:bmcs,要求先,要求先按按“部门部门”降序排列,当降序排列,当“部门部门”相同时,按相同时,按“出生日期出生日期”降序排列。降序排列。INDEX ON 部门部门+DTOC(出生日期出生日期) TAG bmcs DESC 2建立非结构复合索引建立非结构复合索引 格式:格式:INDEX ON TAG OF .CDX FOR ASCENDING | DESCENDING【UNIQUE
16、|CANDIDATE】 功能:对当前的表文件,按功能:对当前的表文件,按的值建立索引文件。的值建立索引文件。 说明:说明: ASCENDING或或DESCENDING:指定索引按升序或降序排列,:指定索引按升序或降序排列,默认升序默认升序。 UNIQUE或或CANDIDATE:指定索引类型是唯一索引还是候选索引,指定索引类型是唯一索引还是候选索引,默认普通索引默认普通索引2.5.12.5.1表的索引命令表的索引命令【例例3】在职工简况表在职工简况表Zgjk.dbf中,使用命令建立中,使用命令建立“部门部门” 字段的建立唯一索引,索引名称为:部门,要求按字段的建立唯一索引,索引名称为:部门,要求
17、按“部门部门”降序排列,降序排列,复合索引文件名为复合索引文件名为BM.CDX。在命令窗口中,键入以下命令并执行。在命令窗口中,键入以下命令并执行。USE Zgjk &打开职工简况表打开职工简况表INDEX ON 部门部门 TAG 部门部门 OF BM.CDX DESC UNIQUE&建立索引建立索引BROWSE&在浏览窗口中显示表记录在浏览窗口中显示表记录【练习练习1】在职工简况表在职工简况表Zgjk.dbf中,建立中,建立 “性别性别” 字段为字段为关键字,建立索引名称为:关键字,建立索引名称为:xb的候选索引,按性别降序排列,的候选索引,按性别降序排列,复合索引文件名为复合索引文件名为C
18、C.CDXINDEX ON 性别性别 TAG xbFOR CC.CDX DESC CAND【练习练习2】在职工简况表在职工简况表Zgjk.dbf中,建立中,建立“部门部门”和和“性性别别”两个字段的复合索引,索引名称为:两个字段的复合索引,索引名称为:bmxb,要求先按,要求先按“部门部门”降序排列,当降序排列,当“部门部门”相同时,按相同时,按“性别性别”降序排降序排列列,复合索引文件名为复合索引文件名为BMXB.CDX。INDEX ON 部门部门+性别性别 TAG bmxb OF BMXB.CDX DESC【2015高考高考】 使用使用“order_list”表,建立以表,建立以“订单号订
19、单号”为为关键字,名称为关键字,名称为“订单订单”的的 降序的唯一索引,复合索引文件名降序的唯一索引,复合索引文件名为为DD.CDX。(用。(用Visual FoxPro命令)命令)INDEX ON 订单号订单号 TAG 订单订单 OF DD.CDX DESC UNIQUE【2014高考高考】以以“职工号职工号”为关键字建立降序的唯一索引,索为关键字建立降序的唯一索引,索引名为引名为ZHG,索引文件名,索引文件名ZHGGL.CDX。(用。(用Visual FoxPro命命令)令)INDEX ON 职工号职工号 TAG ZHG OF ZHGGL.CDX DESC UNIQ【2012高考高考】 以
20、系部名称以系部名称+年龄降序建立唯一索引的复合索年龄降序建立唯一索引的复合索引,索引名为引,索引名为XN,索引文件名为,索引文件名为XB.CDX。(用。(用Visual FoxPro命令)命令)INDEX ON 系部名称系部名称+str(年龄)(年龄)TAG XN OF XB.CDX DESC UNIQUE【2011高考高考】使用使用“学生学生”表,建立以表,建立以“出生日期出生日期”为关键字,为关键字,索引名为索引名为“生日生日”的升序的唯一索引,复合索引文件名为的升序的唯一索引,复合索引文件名为DA.cdx。(用。(用Visual FoxPro命令)命令)INDEX ON 出生日期出生日期
21、TAG 生日生日 OF DA.CDX UNIQUE 3建立索引建立索引建立单索引建立单索引 格式:格式:INDEX ON TO .IDX FOR UNIQUECOMPACT功能:对当前的表文件,按功能:对当前的表文件,按的值建立索引文件。的值建立索引文件。 说明:说明:UNIQUE:指定索引类型是唯一索引还是候选索引指定索引类型是唯一索引还是候选索引 COMPACT:指定索引文件为压缩文件指定索引文件为压缩文件2.5.12.5.1表的索引命令表的索引命令【例例3】在职工简况表在职工简况表Zgjk.dbf中,使用命令建立中,使用命令建立“部门部门” 字段为关键字,建立索引字段为关键字,建立索引文
22、件名为文件名为BM.IDX。在命令窗口中,键入以下命令并执行。在命令窗口中,键入以下命令并执行。USE Zgjk &打开职工简况表打开职工简况表INDEX ON 部门部门 TO BM.IDX&建立索引建立索引BROWSE&在浏览窗口中显示表记录在浏览窗口中显示表记录【2010高考高考】 按部门和工资为关键字建立索引文件按部门和工资为关键字建立索引文件BMGZIDXINDEX ON 部门部门+str(工资)(工资)TO BMGZ.IDX索引目的是建立表间联系和加快数据检索。索引目的是建立表间联系和加快数据检索。数据检索的本质是将记录指针定位到目标记录,并没有显示数据检索的本质是将记录指针定位到目
23、标记录,并没有显示记录数据的内容。找到目标记录后,还要使用记录数据的内容。找到目标记录后,还要使用DISP命令,才能命令,才能看到目标记录的内容。看到目标记录的内容。常用的数据检索命令有:常用的数据检索命令有:SEEK、FIND和和LOCATE。SEEK和和FIND命令是索引检索,也就是说,在使用命令是索引检索,也就是说,在使用SEEK和和FIND命令之前要先索引。命令之前要先索引。LOCATE命令是条件检索。命令是条件检索。2.5.22.5.2数据检索数据检索索引目的是建立表间联系和加快数据检索。索引目的是建立表间联系和加快数据检索。数据检索的本质是将记录指针定位到目标记录,并没有显示数据检
24、索的本质是将记录指针定位到目标记录,并没有显示记录数据的内容。找到目标记录后,还要使用记录数据的内容。找到目标记录后,还要使用DISP命令,才能命令,才能看到目标记录的内容。看到目标记录的内容。常用的数据检索命令有:常用的数据检索命令有:SEEK、FIND和和LOCATE。SEEK和和FIND命令是索引检索,也就是说,在使用命令是索引检索,也就是说,在使用SEEK和和FIND命令之前要先索引。命令之前要先索引。LOCATE命令是条件检索。命令是条件检索。4.3.54.3.5数据检索数据检索1索引检索索引检索(1)SEEK命令命令格式:格式:SEEK 功能:将记录指针移到与功能:将记录指针移到与
25、值相匹配的记录。值相匹配的记录。说明:说明:1)要先索引后检索。)要先索引后检索。2)SEEK命令中的命令中的与索引表达式必须相同。与索引表达式必须相同。【例例420】在职工简况表中,使用在职工简况表中,使用SEEK命令查找并显示家电部门命令查找并显示家电部门的职工信息。的职工信息。USE ZgjkINDEX ON 部门部门 TAG 部门部门&刚建的索引是打开的刚建的索引是打开的SEEK 家电家电 &若缺省双引号,家电将被理解为变量名若缺省双引号,家电将被理解为变量名DISP&显示第显示第1 1个目标记录内容个目标记录内容SKIP&指针移到下一个目标记录指针移到下一个目标记录DISP&显示第显
展开阅读全文