




已阅读5页,还剩27页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
8.1索引概述,1.索引的概念所谓索引就是按照索引表达式(数据表的某个字段或字段的组合)的值使表中的记录有序排列的一种技术。一般情况下,标中记录的顺序是由数据输入的前后次序决定的,并用记录号予以标识。除非有记录插入或记录删除,否则表中的记录顺序总是不变的。索引实际就是一种排序,但是他不改变表中数据的物理顺序,而是另外建立一个数据号列表。索引文件不能单独使用,必须同源数据表文件一起使用。索引一旦建立后,就产生了一个相应的索引文件。索引文件中只包含两项信息:一是每条记录索引关键字表达式的值,另一项是与其对应的记录号。既在索引文件中只保留索引关键字和记录号信息,并不存在记录的字段数据,因此它不能单独使用,必须同时打开原数据文件,才能使索引文件有效。在VF中,同一个数据库中的多个表以相同属性字段建立索引后,可根据索引表达式的值建立数据库中多个表间的关联关系。,第8章索引及记录操作,2、索引的种类根据关键字段值是否重复可将索引分为四种类型:主索引、候选索引、惟一索引、普通索引。主索引:索引表达式的值唯一能够标识每个记录的索引,即索引表达式的值不允许重复。主索引只能在数据库表中建立,一个表只能创建一个主索引。候选索引:索引表达式的值不允许重复、有资格被选做主索引的索引。数据库表和自由表都可以建立侯选索引,一个表可以有多个候选索引。普通索引:是除了上面几种索引之外的一种索引,它允许索引关键字有重复的值,对有相同索引表达式值的记录按原有的先后顺序集中排列在一起。惟一索引:允许索引关键字有重复的值的索引,当有重复值出现时,索引文件只保存重复的第一次值。,3、创建索引1)利用表设计器创建索引2)利用命令创建索引A、创建非结构索引INDEXONToFORASCENDINGDescending命令功能:为当前表按的值建立一个非结构索引文件,索引文件扩展名.IDX。例1:将学生档案表.DBF数据表信工系(学号第3位为2)的学生按学号升序建立非结构索引文件xh.idx。USE学生档案表INDEXON学号TOxhFORSUBS(学号,3,1)=”2”ascending当索引建立后,新建立的索引文件将自动打开且处于主索引的位置,记录随即按该索引顺序来排列。,B、创建结构索引INDEXONTAGFORASCENDING|DESCENDINGUniqueCandidate说明:TAG:结构化索引文件每个索引都必须有一个索引标识。记录的顺序默认为升序,也可用“Ascending”表示,降序用“Descending”;Unique建立唯一索引,Candidate建立候选索引,否则建普通索引。例:将学生档案表.dbf按籍贯和高考成绩降序索引,索引标识为jgcj,按学号升序索引,索引标识为xh,建立结构化复合索引文件。USE学生档案表indexon籍贯+str(高考成绩,5)desctagjgcjindexon学号tagxh,8.2建立表间的关联关系,1、建立表间“一对一”关系(p150)2、建立表间“一对多”关系,3、设置参照完整性,8.3记录排序,1、物理排序排序就是根据数据表的某些字段(称为关键字段)的“值”(称为关键字值)的大小重排记录,(可为升序、可为降序)排序后将产生一个新的可单独使用的数据表文件(*.DBF)。原数据表文件不变。,命令方式:(1)命令格式:SORTTOON/A|/D/C,/A|/D/CForFields(2)命令功能:根据”关键字段”的值(称为关键字值)的大小重排记录,产生一个新的可单独使用的数据库文件(*.DBF)。选项/A和/D分别表示升序或降序,不选择则默认为按升序排列。选项/C表示不区分字母的大小写。,2、按索引字段排序a、先在“表设计器”窗口中,为表建立多个索引;b、选择“显示”下拉菜单“浏览”,进入“浏览”窗口;c、在“浏览”窗口下,打开“表”,选择“属性”,进入“工作区属性”窗口,查看所有操作。3、按索引表达式排序,8.4记录定位,7.1绝对定位1、菜单方式2、命令方式无条件记录定位:goto(go);gototop;gotobottom;有条件记录定位:直接(顺序)定位和索引(快速)定位;定位命令仅仅是对记录指针进行定位的一种操作,它并不能显示定位的记录内容。如要显示,则需要使用并且只能使用Display命令。3、相对定位skip;,7.3条件(顺序)定位所谓顺序定位是指在表中从第一条记录开始,按照顺序搜索表,把记录指针定位在满足条件的第一条记录上。顺序定位适合于复杂条件或小型表的定位。命令格式:1)找首条:LocateFor范围2)找后续(继续查询):Continue&按照Locate指定的条件继续定位下一条记录,例:在学生挡案表.Dbf表中,查找姓“王”的学生。Use学生挡案表LocateForSubs(姓名,1,2)=”王”&如果用LocateFor“王”$姓名可能会产生什么问题?Display&显示查询结果Continue&继续定位查询下一个记录?Found()&Found()函数为.T.Display&显示第二条”王”姓记录Continue&“EndOfLocateScope”显示定位结束?Eof()&Eof()函数为.T.,7.3索引定位索引定位是一种快速定位记录的方法,利用索引定位将明显提高查询效率,适用于大型表的查询。它要求数据表文件的记录是有序的,所以,事先必须对数据表文件进行索引,而且要求查询内容所在的字段或表达式必须是索引文件的索引关键字段或表达式。(查什么按什么索引),索引定位有两种命令格式:格式一:Find格式二:Seek1.FIND命令(1)命令方式命令格式:FIND/功能:在打开的以查询内容所在字段为索引关键字的索引文件中,快速查找关键字段等于或的第一个记录。,说明:执行命令前,必须首先建立以查询内容所在字段或表达式为索引关键字的索引文件,若已存在则打开该索引文件,且将其设置为主索引。FIND命令通常适用于字符数据类型及数值型,字符串中的字符可以不用定界符。如果查找成功,则把记录指针指向逻辑顺序中第一条符合条件的记录,且FOUND()函数的值为.T.,否则,记录指针指向文件未尾,FOUND()函数的值为.F.。,例题:例题1:在学生档案表中,用FIND命令查找学号为“9832101”的学生。USE学生档案表indexon学号toxhFIND9832101DISPLAY例题2:在学生成绩表中,用FIND命令查找成绩为78的学生.use学生成绩表indexon成绩tocjfind78disp例题3.在学生档案表.DBF数据表文件中,以变量的形式,用FIND命令查找姓名为“刘丽红”的学生(以姓名为索引关键字的索引文件XM.IDX已建立)。,2.SEEK命令FIND命令只能对字符型和数值型的数据进行查找,在某些情况下使用起来不方便,为此,系统中又提供了功能更强的SEEK命令。格式:SEEK功能:在打开的以查询内容所在字段为索引关键字的索引文件中,快速查找关键字段等于值的第一个记录。,其中:(1)SEEK命令适用于一切数据类型(C、N、D、L),表达式可以是常量、变量和函数所组成,但必须与索引表达式一致。表达式为C、D、L(.T.,.F.)常量时,必须使用相应的定界符,如:“”、。(2)表达式为变量时,要直接使用,不需要用宏代换函数。(3)如果查找成功,则把记录指针指向逻辑顺序中第一条符合条件的记录,且FOUND()函数的值为.T.,否则,记录指针指向文件未尾,FOUND()函数的值为.F.。,例题3:例题:在学生档案表.DBF数据表文件中,用SEEK命令查找学号为“9921205”的学生(以学号为索引关键字的索引文件XH.IDX已建立)。USE学生档案表INDEXxh&打开以学号为索引关键字的索引文件XH.IDXSEEK“9921205”&必须使用定界符DISPLAY,小结:LOCATE和SEEK、FIND都是用于在数据表文件中查询定位记录指针,即把记录指针定位在满足条件的记录上。特别强调:仅仅是定位记录指针。如要显示定位的记录内容,则需要用DISPLAY命令。(2)LOCATE和SEEK、FIND的不同之处:LOCATE是顺序查询定位,可以直接利用原数据表进行定位操作,而SEEK、FIND命令是索引查询定位,必须首先对原数据表按定位数据所在字段或表达式进行索引,建立相应的索引文件或打开相应的索引文件、索引标识的前提下才能进行定位操作。LOCATE和CONTINUE相配合可以连续查询定位多条记录,而SEEK、FIND只能查询定位单条记录。LOCATE是用条件表达式的形式来定位,而SEEK、FIND是用常量、变量或变量组成的表达式的形式来定位。,(3)FIND和SEEK的不同之处:FIND命令适用于字符型和数值型数据,不可用于日期型和逻辑型数据类型。表达式为字符常量时,不须使用相应的定界符。表达式为变量时,不可直接使用,必须使用宏代换函数。SEEK命令适用于数据类型(C、N、D、L),但若为C、D、L常量时,必须使用相应的定界符,如:“”、.。表达式为变量时,要直接使用,不需要用宏代换函数。,8.5记录删除与恢复,随着表文件的不断更新,必然会出现一些无用的记录,需要删除。表文件记录的删除有二种:逻辑删除和物理删除。(1)逻辑删除逻辑删除仅对记录作逻辑删除标记,作了逻辑删除的记录可以用Recall恢复为正常记录。1)命令方式DeleteForRecallFor,例:逻辑删除学生档案表中第6条记录。Use学生档案表DeleteRecord6recall&能实现被逻辑删除记录的恢复吗?2)菜单方式打开表选择需要作逻辑删除的记录,单击“表”,在弹出的快捷菜单中选择“删除记录”。打开表,单击“表”,在弹出的快捷菜单中选择“恢复记录”。,(2)物理删除作了物理删除的记录,则从磁盘中永久删除。要物理删除表文件记录。应分两步进行:用Delete作逻辑删除。用Pack命令才能真正删除已加删除标记的记录。1)命令方式DeleteForPack参数说明:物理删除是对表中作了逻辑删除的记录从磁盘中彻底删除,这种删除是不可恢复的。Pack命令执行后,将调整磁盘空间及记录号。但这部分磁盘空间只有在关闭表文件后,才能释放。,例:物理删除学生档案表中99级的学生记录。Use学生档案表DeleteForSubs(学号,1,2)=”99”Pack2)菜单方式打开表,单击“表”,在弹出的快捷菜单中选择“彻底删除”。(3)一次性物理删除表中的所有记录Zap参数说明:该命令不需要先进行逻辑删除,直接使用ZAP可一次性物理删除表的全部记录,但要慎重使用。,例:在命令窗口中依次输出下列命令观察、分析各条命令执行的结果。Use学生档案表CopyToXsda&建立一备份文件UseXsdaDeleteFor专业代码=“021”.Or.专业代码=“031”ListPack&物理删除已作删除标记的记录BrowseDeleteFor出生日期=1977/10/31BrowseRecallForYear(出生日期)=1977Browse&观察运行结果,1977年出生的记录其删除标记被除掉Go3Delete&对第三号记录作删除标记Browse&观察运行结果Zap&物理删除全部记录Browse&表文件中无任何记录,全部物理删除CloseAll,8.6记录修改,记录的修改表记录的修改有手工修改方法和替换修改方法两类。手工输入修改法适用于少量数据的修改,需要用户从键盘上输入修改数据。替换法适用于成批的有规律的数据修改1)手工输入修改法命令方式EditForFieldsChangeForFieldsBrowseForFields,三条命令均具有修改记录的功能。修改结束后,按Ctrl+W存盘退出修改窗口。Edit和Change如果没有作For选择,通过Go定位或在Edit、Change后指明记录号,则可对包括当前记录后的所有记录进行修改。修改有“浏览”和“编辑”两种窗口界面,可通过“显示”菜单下的“浏览”和“编辑”来转换。修改备注型字段和通用型字段的方法与添加记录相同,即双击“Mem”和“Gen”,在弹出的编辑窗口中进行修改。菜单方式打开表文件。单击“显示”及其下拉菜单中的“浏览”选项,表被显示。用滚动条将光标定位在需要修改的记录的有关字段处,并修改数据。修改结束后,按CTRL+W存盘并退出修改状态。,例:在学生档案表.Dbf中,将学号为“9921203”的记录的“班级”修改为“99211”,将“个人简历”添加“获2003年学院三好学生的光荣称号”内容。Use学生档案表EditFields学号,班级,个人简历For学号=”9921203”例:理解修改记录命令示例。Use学生档案表Go3Change&可对3号以后的记录进行修改,(3)记录的替换表文件的记录有时会遇到大批量的有规则的数据要修改的问题,用手工修改法很麻烦、费时。这时,可以在程序设计中使用替换法。用Replace命令中指定的表达式的值来替换字段原有的值。ReplaceWithAdditive,WithAdditiveForWhile,参数说明:用With后指定的的值来替换当前表中指定范围内满足条件的字段的原有值。表达式的数据类型必须与替换的字段数据类型一致。若命令中
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 老人赡养合同书9篇
- 2025合同法讲座版本
- 影视拍摄服务合同7篇
- 2025农产品大户收购合同书
- 2025办公室租赁合同终止协议
- Lesson 11 Fun at school教学设计-2025-2026学年小学英语一年级上册冀教版(一起)
- 张家界事业单位笔试真题2025
- 2025企业借款抵押合同协议
- 初中体育 运动中腹痛说课稿
- 2025合同终止协议书样本范本版
- 2025湖南益阳安化县事业单位招聘工作人员61人考试参考试题及答案解析
- 7 呼风唤雨的世纪 课件
- 电瓶托盘堆垛车安全培训课件
- 快递分拣中心操作流程及安全规范
- 机加工安全质量培训计划课件
- 2025年全国计算机等级考试三级网络技术模拟题及答案
- ZXONE8700技术规范书
- 微观经济学生产与成本理论
- 环境监测第2章(2)——水和废水监测ppt课件
- 《晋灵公不君》优秀PPT课件(完整版)
- 中毒窒息事故应急处置卡
评论
0/150
提交评论