VF数据库第8章 索引及操作.ppt
《VF数据库第8章 索引及操作.ppt》由会员分享,可在线阅读,更多相关《VF数据库第8章 索引及操作.ppt(32页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、8.1 索引概述v1.索引的概念索引的概念v 所谓索引就是按照索引表达式(数据表的某个字段或字段的组合)的值使表中的记录有序排列的一种技术。v 一般情况下,标中记录的顺序是由数据输入的前后次序决定的,并用记录号予以标识。除非有记录插入或记录删除,否则表中的记录顺序总是不变的。v 索引实际就是一种排序,但是他不改变表中数据的物理顺序,而是另外建立一个数据号列表。索引文件不能单独使用,必须同源数据表文不能单独使用,必须同源数据表文件一起使用件一起使用。v索引一旦建立后,就产生了一个相应的索引文件。索引文件中只包含两项信息:一是每条记录索引关键字表达式的值,另一项是与其对应的记录号。既在索引文件中只
2、保留索引关键字和记录号信息,并不存在记录的字段数据,因此它不能单独使用,必须同时打开原数据文件,才能使不能单独使用,必须同时打开原数据文件,才能使索引文件有效索引文件有效。v 在VF中,同一个数据库中的多个表以相同属性字段建立索引后,可根据索引表达式的值建立数据库中多个表间的关联关系。第8章 索引及记录操作2、索引的种类、索引的种类 根据关键字段值是否重复可将索引分为四种类型:主索引、候选索引、惟一索引、普通索引。主索引:索引表达式的值唯一能够标识每个记录的索引,即索引表达式的值不允许重复。主索引只能在数据库表中建立,一个表只能创建一个主索引。候选索引:索引表达式的值不允许重复、有资格被选做主
3、索引的索引。数据库表和自由表都可以建立侯选索引,一个表可以有多个候选索引。普通索引:是除了上面几种索引之外的一种索引,它允许索引关键字有重复的值,对有相同索引表达式值的记录按原有的先后顺序集中排列在一起。惟一索引:允许索引关键字有重复的值的索引,当有重复值出现时,索引文件只保存重复的第一次值。3 3、创建索引、创建索引1 1)利用表设计器创建索引)利用表设计器创建索引2 2)利用命令创建索引)利用命令创建索引A A、创建非结构索引、创建非结构索引INDEX ON To FOR ASCENDING Descending命令功能:为当前表按 的值建立一个非结构索引文件,索引文件扩展名.IDX。例1
4、:将学生档案表.DBF数据表信工系(学号第3位为2)的学生按学号升序建立非结构索引文件xh.idx。USE 学生档案表 INDEX ON 学号 TO xh FOR SUBS(学号,3,1)=”2”ascending 当索引建立后,新建立的索引文件将自动打开且处于 主索引的位置,记录随即按该索引顺序来排列。B、创建结构索引INDEX ON TAG FOR ASCENDING|DESCENDINGUniqueCandidate说明:说明:TAG:结构化索引文件每个索引都必须有一 个索引标识。记录的顺序默认为升序,也可用“Ascending”表示,降序用“Descending”;Unique建立唯一
5、索引,Candidate建立候选索引,否则建普通索引。例:将学生档案表.dbf按籍贯和高考成绩降序索引,索引标识为jgcj,按学号升序索引,索引标识为xh,建立结构化复合索引文件。USE 学生档案表 index on 籍贯+str(高考成绩,5)desc tag jgcj index on 学号 tag xh8.2建立表间的关联关系v1、建立表间“一对一”关系(p150)v2、建立表间“一对多”关系3、设置参照完整性8.3 记录排序v1、物理排序v 排序就是根据数据表的某些字段(称为关键字段)的“值”(称为关键字值)的大小重排记录,(可为升序、可为降序)排序后将产生一个新新的可单独使用的数据表
6、文件单独使用的数据表文件(*.DBF)。原数据表文件不变原数据表文件不变。命令方式:(1)命令格式:SORT TO ON /A|/D/C ,/A|/D/C For Fields(2)命令功能:根据”关键字段”的值(称为关键字值)的大小重排记 录,产生一个新的可单独使用的数据库文件(*.DBF)。选项/A和/D分别表示升序或降序,不选择则默认为按升序排列。选项/C表示不区分字母的大小写。2、按索引字段排序 a、先在“表设计器”窗口中,为表建立多个索引;b、选择“显示”下拉菜单“浏览”,进入“浏览”窗口;c、在“浏览”窗口下,打开“表”,选择“属性”,进入“工作区属性”窗口,查看所有操作。3、按索
7、引表达式排序8.4 记录定位v7.1 绝对定位绝对定位v1、菜单方式、菜单方式v2、命令方式、命令方式v无条件记录定位:goto(go);goto top;goto bottom;v有条件记录定位:直接(顺序)定位和索引(快速)定位;v 定位命令仅仅是对记录指针进行定位的一种操作,它并不能显示定位的记录内容。如要显示,则需要使用并且只能使用Display命令。v3、相对定位vskip;v7.3 条件(顺序)定位条件(顺序)定位v 所谓顺序定位是指在表中从第一条记录开始,按照顺序搜索表,把记录指针定位在满足条件的第一条记录上。v 顺序定位适合于复杂条件或小型表的定位。v命令格式:v1)找首条:v
8、 Locate For 范围v2)找后续(继续查询):v Continue v&按照Locate指定的条件继续定位下一条记录例:在学生挡案表.Dbf表中,查找姓“王”的学生。Use 学生挡案表 Locate For Subs(姓名,1,2)=”王”&如果用 Locate For“王”$姓名 可能会产生什么问题?Display&显示查询结果 Continue&继续定位查询下一个记录?Found()&Found()函数为.T.Display&显示第二条”王”姓记录 Continue&“End Of Locate Scope”显示定位结束?Eof()&Eof()函数为.T.7.3 7.3 索引定位索
9、引定位 索引定位是一种快速定位记录的方法,利用索引定位将明显提高查询效率,适用于大型表的查询。它要求数据表文件的记录是有序的,所以,事先必须对数据表文件进行索引,而且要求查询内容所在的字段或表达式必须是索引文件的索引关键字段或表达式。(查什么按什么索引)索引定位有两种命令格式:索引定位有两种命令格式:格式一:Find 格式二:Seek 1.FIND1.FIND命令命令(1)命令方式 命令格式:FIND/功能:在打开的以查询内容所在字段为索引关键字的索引文件中,快速查找关键字段等于等于或的第一个记录。说明:执行命令前,必须首先建立以查询内容所在字段或表建立以查询内容所在字段或表达式为索引关键字的
10、索引文件达式为索引关键字的索引文件,若已存在则打开该索引文件,且将其设置为主索引。FIND命令通常适用于字符数据类型及数值型字符数据类型及数值型,字符串中的字符可以不用定界符。如果查找成功,则把记录指针指向逻辑顺序中第一条符合条件的记录,且FOUND()函数的值为.T.,否则,记录指针指向文件未尾,FOUND()函数的值为.F.。例题:例题1:在学生档案表中,用FIND命令查找学号为“9832101”的学生。USE 学生档案表 index on 学号 to xh FIND 9832101 DISPLAY例题2:在学生成绩表中,用FIND命令查找成绩为78的学生.use 学生成绩表 index
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VF数据库第8章 索引及操作 VF 数据库 索引 操作
限制150内