vf课件 索引

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

工资 1457.90 1327.70 1437.70 1209.20 1327.70 822.20 1567.50 967.45 682.50 673.80
JSQK.DBF
索引命令 记录号 7 1 3 2 5 4 8 6 9 10 工资 1567.50 1457.90 1437.70 1327.70 1327.70 1209.20 967.45 822.20 682.50 673.80
23
• 1 打开表的同时打开单索引文件 • USE <表文件名 > INDEX <单索引文件名
• 注: ORDER用于决定主控索引文件
表> ORDER <数值表达式/单索引文件名>
24
25
• 2 打开表的同时打开结构复合索引文件 • USE <表文件名> ORDER TAG<标识名>
• 注:由于结构复合索引文件是随表一起打
• 索引文件不能单独使用,它必须同表一起
配合使用。
8
记录号 1 2 3 4 5 6 7 8 9 10
教师编号 11012 10008 14017 10011 10009 09013 16015 15016 10020 12014
姓名 王立元 王洋 李振荣 张建军 周文冰 段文瑞 周荣 任宏远 李晓宇 王珊
SORT TO JSPX1 ON 工资/d FIELDS 教师编号,姓名,工资
记录号 1 2 3 4 5 6 7 8 9 10 教师编号 16015 11012 14017 10008 10009 10011 15016 09013 10020 12014 姓名 周荣 王立元 李振荣 王洋 周文冰 张建军 任宏远 段文瑞 李晓宇 王珊 工资 1567.50 1457.90 1437.70 1327.70 1327.70 1209.20 967.45 822.20 682.50 JSPX1.DBF 673.80
功能:按顺序搜索表,从而找到满足指定逻辑表达式 的第一个记录。 参数描述: [LOCATE命令的默认范围是ALL。 [FOR <条件>]: WHILE<条件>: 只要遇到一个不满足<条件>的记录, 就退出查找。
CONTINUE 命令继续向后查找满足条件的记录。
38
39
索引查询
• 按照索引文件的逻辑顺序查找符合条
按 学 号 排 序
15
2 结构复合索引文件的建立
INDEX ON <索引关键字> TAG <索引标识名> [UNIQ|CAND] [ASCE|DESC] [FOR<条件>]
说明: [ ascending|descnding ]用于指定升序或降序
扩展名为.CDX
16
例如: • 对“学生”表建立二个结构复合索引
录 一个表可建多个唯一索引
• 普通索引: • 可用于数据库表和自由表 • 不要求字段唯一性, 且索引项中允许出现重
复值
11
索引类型(按建立方法划分)
• 单索引文件 .IDX • 复合索引文件 .CDX • (包括结构复合索引和非结构复合索引两
种文件)
12
一 索引的建立 • 1 单索引文件的建立
格式:INDEX ON <索引表达式> TO <索引文件名> FOR <条件> [UNIQUE] [ADDITIVE]
⑷ L 型数据:.F.值小,.T.值大
⑸ M 型与G型:不能排序
3


是根据表的某些字段,重新排列记录顺序,
生成一个新表,称为排序表该表记录按新的
顺序排列,而原表保持不变。
4
排序命令
命令格式:
SORT TO <新表名> ;
ON
<关键字段1>[/A|/D>][/C] ;
[,<关键字段2>[/A|/D>][/C]…] ;
本节课主要内容
• 索引的概念 • 索引文件的建立 • 索引的使用、更新与删除 • 查询 • 统计与汇总
1


表中的记录是按输入的先后顺序排列的。 如果要按另外一种特定的顺序输出,就必须对 该表进行排序或索引,排序与索引都可以改变 记录的输出顺序。
2
数据比较大小的定义
⑴ C 型数据:字符以拼音或ASCII大小定义 ⑵ N 型数据:以其数值大小定义 ⑶ D 型数据:年大则大,月大则大
SET INDEX TO
ERASE XM.IDX
返回
35
删除结构复合索引
命令格式:DELETE 功 TAG ALL 能:删除打开的结构复合索引文件的全部 索引标识,则该索引文件也被删除。 命令格式:DELETE TAG <索引标识名表>


能:指定删除打开的结构复合索引文件的
索引标识. 例:删除JSQK.DBF中的结构复合索引标识GZ和教
[<范围>][FOR<条件>][FIELDS<字段名表>]
5
SORT TO JSPX2 ON 工作单位,出生日期/D;
FOR YEAR(出生日期)<1970;
FIELDS 教师编号,姓名,工作单位,出生日期
记录号教师编号 1 2 3 4 5 6 7 8 16015 09013 10009 10011 10008 11012 15016 14017
USE JSQK GO 4
&&当前记录指针指向第4条记录
AVERAGE 工资
NEXT 5
&&第4条到第8条记录的平均工资
窗口工作区内显示:
工资
1194.83
54
46
四 数据的统计
1 求记录个数的命令 2 求和命令 3 求平均值命令 4 计算命令
47
1 求记录个数的命令
命令: COUNT
[<范围>] [FOR <条件>] [TO <内存变量>]
功能:统计指定<范围>内满足<条件>的记 录个数,并存于<内存变量>中。
48
例:USE 学生 SET EXACT OFF COUNT FOR 姓名=“张” TO RS ? RS
索引文件(.IDX或CDX)
9
VFP对结构复合索引文件提供了四种类型:
主索引: 仅用于数据库表 关键字段值必须唯一 一个表只能建一个主索引 候选索引: 可用于数据库表和自由表 关键字段值必须唯一 一个表可建多个候选索引
10
• 唯一索引: • 可用于数据库表和自由表 • 对关键字段值只存储一次,忽略后面重复记
• 1 以姓名降序排列,索引标识为普通索引 • 2 以性别升序排列,性别相同以入校总分
降序排列,索引标识为普通索引
17
以姓名降序排列
18
以性别升序排列,性别相同以入校总分降序排列
19
4.表设计器操作方式:
注意:
利用表设计器只能实现对结构复合索引
标识的建立和修改
20
通过表设计器创建索引
21
22
45
2. Find命令
命令格式: FIND <字符表达式>|<数值>


能:与SEEK命令的功能基本相同.
明 : ① 若 < 字 符 型 表 达 式 > 为 常 量 时 , 可 不 加 引 号 ; 若 为 变 量 时 , 则 必 须 使 用 宏 代换。 ② 当 主 控 索 引 的 索 引 关 键 字 为 数 值 型 字 段 时 , F I N D 后 面 可 写 一 个 要 查 找 的 数 值 . 但 不 能 是 数 值 型 表 达 式 。
师编号.
USE JSQK DELETE TAG GZ,教师编号
返回
36
三 查询命令
查询是指根据条件从表中查找所需的记录, 查询的结果可以多种形式出.VFP提供了多种查询 方法,有传统的定位查询和索引查询,还提供了 强大的SQL直接查询命令。 1 定位查询 2 索引查询
37
直接查询命令
格式:LOCATE [<范围>] [FOR <条件>] [WHILE <条件>]
理解索引

索引可以理解为根据某一字段的值进行逻辑排序 的一组指针

按照索引显示记录,VFP按照指针排列的顺序分别
读取每一条记录,而这些记录在数据库中的实际
存储位置并未改变。
7
索引与排序的区别
• 索引它并不生成新的表文件,仅仅是表中
记录的逻辑顺序发生了变化,但索引也要 生成一个新的文件,即索引文件。
结构复合索引文件而言
31
32
6. 索引文件的关闭
(1) USE (2) SET INDEX TO (3) CLOSE INDEX
返回
33
7. 索引的删除
删除索引文件 删除结构复合索引标识
34
删除索引文件
命令格式:
ERASE <索引文件名> 注 意: 使用前必须先关闭要删除 的索引文件。 例:删除XM.IDX
开的,因此这条命令主要用于确定主控索 引
26
27
Biblioteka Baidu
4 打开表文件后再打开索引文件
• 命令:SET INDEX TO [索引文件名表]
• 注意:此命令是用来打开单索引文件及非
结构复合索引文件的。
28
例如:“学生”表里包含单索引(.IDX)文件xm, 结构复合索引(.CDX)文件标识为xb, csny 非结构索引文件(.CDX)为yy
• 则打开所有索引文件可用命令: • USE 学生 • SET INDEX TO xm, yy
29
4 确定主控索引
• 命令: • SET ORDER TO [<数值表达式>/<单索引
文件名>/[TAG] <索引标记> [OF <复合索 引文件名>]
30
5 索引的更新
• REINDEX • 注意:此命令主要是针对单索引文件和非
结果: 在屏幕上就会显示出姓张的学生记录的总数
49
命令格式:
求和命令
SUM [<数值字段表达式表>][<范围>]
[FOR <条件>][TO <内存变量表>] 功 能: 在指定<范围>内满足<条件>的记录中, 对<数值字段表达式表>中的各项分别求和。
50
求和命令说明
①若SUM命令的选项都缺省,则 表中所有数值型字段分别求和 ②<内存变量表>中变量的个数, 与 < 数 值 字 段 表 达 式 表 > 中 的 达式的个数相匹配,且都用逗 隔开. 对 。 要 表 号
返回
51
52
求平均值命令
命令格式: AVERAGE [<数值字段表达式表>][<范围>] [FOR<条件>][TO <内存变量表>] 功 能: 在指定<范围>内满足<条件>的记录 中,对<数值字段表达式表>中的各项分别 求平均值。 举 例:
53
例 从教师情况表JSQK.DBF中,求出第4号记录到 第8号记录的平均工资。
缺省索引文件扩展名为: .IDX
一个表可建立多个单索引文件,但是,单索引文件只能按 升序排列,要实现降序要经过特殊处理。
13
举例
• 为表STUDENT创建一个按学号顺序排列的单
索引文件,索引文件名叫XH
14
USE STUDENT INDEX ON 学号 TO XH LIST
当执行上述命令后 屏幕显示结果
二 索引的使用、更新及删除
使用索引满足的条件: 1 打开表 use 表文件名 2 打开索引文件 set index to [tag] 索引文件名/索引标识 3 确定主控索引文件或主控索引标识 set order to [tag] 索引文件名/索引标识 注意:结构复合索引文件随表的打开而自动 打开,其余索引文件需单独打开
姓名 周 荣 段文瑞 周文冰 张建军 王 洋 王立元 任宏远 李振荣
工作单位 汉文系 化学系 计算机系 计算机系 计算机系 数学系 体育系 外语系
出生日期 08/25/48 06/19/61 09/12/59 10/25/58 05/17/56 04/09/52 07/26/60 07/28/58
6
42
例1 以”职称”字段建立索引,并查找职称为”教授”的记录
43
例2 精确查找与模糊查找的区别
44
• 执行SET EXACT OFF命令后,再用SEEK命令
查找字符串时,字符串可以是索引表达式 值的全部或是从首字符开始的一个子串。 如果执行了SET EXACT ON命令后再用SEEK 命令来查找字符串,则字符串只能和索引 表达式的值精确匹配
件的记录
40
建立索引查询的步骤:
• 1 打开表 • 2 根据要查询的内容建立索引或确定主控
索引 • 3 使用seek命令 • 4 显示结果
41
索引查询命令:
SEEK <表达式> [ORDER <索引号>/<单索引文件名>/ [TAG] <索引标记>]
功能:在打开的索引文件中快速查找与<表达式>相匹配的第1 条记录。 参数描述: <表达式>:指定SEEK搜索的关键字。 ORDER <索引号>/<单索引文件名>/[TAG] <索引标记> [OF <复 合索引文件名>] :指定<表达式>是以哪一个索引或索引标记为 主控索引。其使用方法同设置主控索引。
相关文档
最新文档