VF数据库索引及记录操作
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3、创建索引 1)利用表设计器创建索引 2)利用命令创建索引 A、创建非结构索引
INDEX ON <索引表达式> To <索引文件名> [FOR<条件表达式>] [ASCENDING] [Descending] 命令功能:为当前表按<索引表达式> 的值建立一个非结构索引文件,索引 文件扩展名.IDX。 例1:将学生档案表.DBF数据表信工系(学号第3位为2) 的学生按学号升序建立非结构索引文件xh.idx。 USE 学生档案表 INDEX ON 学号 TO xh FOR SUBS(学号,3,1)=”2” ascending 当索引建立后,新建立的索引文件将自动打开且处于 主索引的位置,记录随即按该索引顺序来排列。
第8章 索引及记录操作
2、索引的种类 根据关键字段值是否重复可将索引分为四种类型:主索引、候选索引、惟一 索引、普通索引。
主索引:索引表达式的值唯一能够标识每个记录的索引,即索引表达式的值不允 许重复。主索引只能在数据库表中建立,一个表只能创建一个主索引。 候选索引:索引表达式的值不允许重复、有资格被选做主索引的索引。数据库 表和自由表都可以建立侯选索引,一个表可以有多个候选索引。 普通索引:是除了上面几种索引之外的一种索引,它允许索引关键字有重复的 值,对有相同索引表达式值的记录按原有的先后顺序集中排列在一起。 惟一索引:允许索引关键字有重复的值的索引,当有重复值出现时,索引文件 只保存重复的第一次值。
1.FIND命令 (1) 命令方式 命令格式: FIND <字符串>/<数值> 功能: 在打开的以查询内容所在字段为索引关键字的索引文 件中,快速查找关键字段等于<字符串>或<数值>的第一个 记录。
说明: ① 执行命令前,必须首先建立以查询内容所在字段或表 达式为索引关键字的索引文件,若已存在则打开该索引 文件,且将其设置为主索引。 ② FIND命令通常适用于字符数据类型及数值型,字符串 中的字符可以不用定界符。 ④ 如果查找成功,则把记录指针指向逻辑顺序中第一条 符合条件的记录,且FOUND()函数的值为.T.,否则, 记录指针指向文件未尾,FOUND()函数的值为.F.。
8.2建立表间的关联关系
1、建立表间“一对一”关系(p150) 2、建立表间“一对多”关系
3、设置参照完整性
8.3 记录排序
1、物理排序 排序就是根据数据表的某些字段(称为 关键字段)的“值”(称为关键字值)的大 小重排记录,(可为升序、可为降序)排序后将 产生一个新的可单独使用的数据表文件 (*.DBF)。原数据表文件不变。
7.3 索引定位 索引定位是一种快速定位记录的方法,利用索引定位 将明显提高查询效率,适用于大型表的查询。 它要求数据表文件的记录是有序的,所以,事先必须 对数据表文件进行索引,而且要求查询内容所在的字段 或表达式必须是索引文件的索引关键字段或表达式。 (查什么按什么索引)
索引定位有两种命令格式: 格式一: Find <表达式> 格式二: Seek <表达式>
B、创建结构索引
INDEX ON <索引表达式> TAG<索引标识名> [FOR<条件表达式>] [ASCENDING|DESCENDING][Unique][Candidate] 说明: ①TAG<索引标识名>:结构化索引文件每个索引都必须有一 个索引标识。 ②记录的顺序默认为升序,也可用“Ascending”表示,降序用 “Descending”;][Unique]建立唯一索引,[Candidate]建立候选索引,否则 建普通索引 。 例: 将学生档案表.dbf按籍贯和高考成绩降序索引,索引标识为jgcj,按学号 升序索引,索引标识为xh,建立结构化复合索引文件。 USE 学生档案表 index on 籍贯+str(高考成绩,5) desc tag jgcj index on 学号 tag xh
7.3 条件(顺序)定位 所谓顺序定位是指在表中从第一条记录开始, 按照顺序搜索表,把记录指针定位在满足条件的第 一条记录上。 顺序定位适合于复杂条件或小型表的定位。 命令格式: 1)找首条: Locate For <条件表达式> [范围] 2)找后续(继续查询): Continue &&按照Locate指定的条件继续定位下一条记录
2、按索引字段排序 a、先在“表设计器”窗口中,为表建立多个索引; b、选择“显示”下拉菜单“浏览”,进入“浏览”窗 口; c、在“浏览”窗口下,打开“表”,选择“属性”, 进入“工作区属性”窗口,查看所有操作。 3、按索引表达式排序
8.4 记录定位
Hale Waihona Puke Baidu
7.1 绝对定位 1、菜单方式 2、命令方式 无条件记录定位:goto(go);goto top;goto bottom; 有条件记录定位:直接(顺序)定位和索引(快速)定位; 定位命令仅仅是对记录指针进行定位的一种操作,它并不能 显示定位的记录内容。如要显示,则需要使用并且只能使用 Display命令。 3、相对定位 skip;
命令方式: (1)命令格式: SORT TO <新文件名> ON <字段名1> [/A|/D][/C] [,<字段名2> [/A|/D][/C] [<范围>] [For<条件表达式1>] [Fields<字段名表>] (2)命令功能: 根据”关键字段”的值(称为关键字值)的大小重 排记 录,产生一个新的可单独使用的数据库文件(*.DBF)。 选项/A和/D分别表示升序或降序,不选择则默认为按 升序排列。选项/C表示不区分字母的大小写。
例: 在学生挡案表.Dbf表中,查找姓“王”的学生。 Use 学生挡案表 Locate For Subs(姓名,1,2)=”王” &&如果用 Locate For “王”$姓名 可能会产生什么问 题? Display &&显示查询结果 Continue &&继续定位查询下一个记录 ?Found() && Found()函数为.T. Display &&显示第二条”王”姓记录 Continue &&“End Of Locate Scope”显示定位结束 ?Eof() && Eof())函数为.T.