《VFP索引与排序.ppt》由会员分享,可在线阅读,更多相关《VFP索引与排序.ppt(45页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、索引与排序索引与排序什么是索引和排序什么是索引和排序索引的构成和类型索引的构成和类型创建索引创建索引索引的编辑和应用索引的编辑和应用 排序的创建和应用排序的创建和应用记录的顺序记录的顺序记录的顺序记录的顺序物理顺序:物理顺序:物理顺序:物理顺序:表中记录的存储顺序。表中记录的存储顺序。表中记录的存储顺序。表中记录的存储顺序。按记录输入的前后顺序存放。按记录输入的前后顺序存放。按记录输入的前后顺序存放。按记录输入的前后顺序存放。逻辑顺序:逻辑顺序:逻辑顺序:逻辑顺序:记录的处理顺序。记录的处理顺序。记录的处理顺序。记录的处理顺序。对记录按某个(些)字段的值进行排序。对记录按某个(些)字段的值进行
2、排序。对记录按某个(些)字段的值进行排序。对记录按某个(些)字段的值进行排序。了解索引与排序了解索引与排序排序排序排序排序索引索引索引索引重新组织重新组织重新组织重新组织数据表数据数据表数据数据表数据数据表数据了解索引与排序了解索引与排序索引实际上是一种排序,但是索引实际上是一种排序,但是索引实际上是一种排序,但是索引实际上是一种排序,但是它不改变数据表中数据的物理它不改变数据表中数据的物理它不改变数据表中数据的物理它不改变数据表中数据的物理顺序,而是另外建立一个顺序,而是另外建立一个顺序,而是另外建立一个顺序,而是另外建立一个逻辑逻辑逻辑逻辑顺序号与记录号(物理顺序)顺序号与记录号(物理顺序
3、)顺序号与记录号(物理顺序)顺序号与记录号(物理顺序)的对照表。的对照表。的对照表。的对照表。表的逻辑顺序号是表的逻辑顺序号是表的逻辑顺序号是表的逻辑顺序号是由某一字段的值的大小决定。由某一字段的值的大小决定。由某一字段的值的大小决定。由某一字段的值的大小决定。排序排序从物理上对表进行重从物理上对表进行重新整理,按照指定的关键新整理,按照指定的关键字段来重新排列表中数据字段来重新排列表中数据记录的顺序,并将重新排记录的顺序,并将重新排序的结果形成一个新的数序的结果形成一个新的数据表。据表。索引的概念索引的概念 索引:不改变物理索引:不改变物理顺序,所有关键字顺序,所有关键字按升(降)排列,按升
4、(降)排列,每个值对应原文件每个值对应原文件的一个记录号,确的一个记录号,确定记录的逻辑顺序定记录的逻辑顺序索引索引逻辑顺序逻辑顺序物理顺序物理顺序只有索引关键字段值或索引表达式值只有索引关键字段值或索引表达式值(逻辑顺序逻辑顺序号号)与记录号与记录号(物理顺序物理顺序)。一个索引表达式或索引关键字段值与记录号对一个索引表达式或索引关键字段值与记录号对应的内容又称之为一张应的内容又称之为一张“对照表对照表”,用一个索,用一个索引标识来标记。引标识来标记。说明:说明:一个表可同时建立多个索引,但只能有一一个表可同时建立多个索引,但只能有一一个表可同时建立多个索引,但只能有一一个表可同时建立多个索
5、引,但只能有一个索引个索引个索引个索引为主控索引为主控索引为主控索引为主控索引。索引文件的内容索引文件的内容索引文件的内容索引文件的内容控制表当前控制表当前显示的顺序显示的顺序索引的概念索引的概念 索引索引逻辑顺序逻辑顺序关键字段关键字段关键字段关键字段值或索引值或索引值或索引值或索引表达式值表达式值表达式值表达式值记录号记录号记录号记录号对照表对照表bh索引标识索引标识索引标识索引标识索引的构成索引的构成索引的构成索引的构成索引名索引名又叫索引标识又叫索引标识(TAG)(TAG)。是标记一个索引的名称。是标记一个索引的名称。索引表达式或索引关键字段索引表达式或索引关键字段索引表达式或索引关键
6、字段的值是确定索引顺序索引表达式或索引关键字段的值是确定索引顺序的依据。的依据。索引的构成与类型索引的构成与类型索引的类型索引的类型索引的类型索引的类型主索引(主索引(主索引(主索引(Primary IndexesPrimary IndexesPrimary IndexesPrimary Indexes)每张表每张表每张表每张表只能有一个只能有一个只能有一个只能有一个。一般为表的关键字或索引表。一般为表的关键字或索引表。一般为表的关键字或索引表。一般为表的关键字或索引表达式的值达式的值达式的值达式的值没有重复值没有重复值没有重复值没有重复值的才能作为主索引。的才能作为主索引。的才能作为主索引。
7、的才能作为主索引。只存在数据库表中的结构复合索引中。只存在数据库表中的结构复合索引中。只存在数据库表中的结构复合索引中。只存在数据库表中的结构复合索引中。候选索引(候选索引(候选索引(候选索引(Candidate IndexesCandidate IndexesCandidate IndexesCandidate Indexes)可有多个。一般为表的关键字或索引表达式的值可有多个。一般为表的关键字或索引表达式的值可有多个。一般为表的关键字或索引表达式的值可有多个。一般为表的关键字或索引表达式的值没有重复值没有重复值没有重复值没有重复值的才能作为候选索引。的才能作为候选索引。的才能作为候选索引。
8、的才能作为候选索引。自由表中也可建立。自由表中也可建立。自由表中也可建立。自由表中也可建立。索引的类型索引的类型索引的类型索引的类型普通索引(普通索引(普通索引(普通索引(Regular IndexesRegular IndexesRegular IndexesRegular Indexes)一张表可有多个。一张表可有多个。一张表可有多个。一张表可有多个。数据库表和自由表均可有。数据库表和自由表均可有。数据库表和自由表均可有。数据库表和自由表均可有。唯一索引(唯一索引(唯一索引(唯一索引(Unique IndexesUnique IndexesUnique IndexesUnique Inde
9、xes)索引表达式中重复的值在索引表中只出现第一个,索引表达式中重复的值在索引表中只出现第一个,索引表达式中重复的值在索引表中只出现第一个,索引表达式中重复的值在索引表中只出现第一个,忽略重复值。忽略重复值。忽略重复值。忽略重复值。建立时,用建立时,用户单独为其户单独为其命名命名建立时,用户未建立时,用户未单独为其命名单独为其命名,与与表文件同名表文件同名需使用单独命令需使用单独命令打开、关闭打开、关闭与表同时打开、与表同时打开、关闭关闭为与为与FOXBASE兼容兼容含多个索含多个索含多个索含多个索引引引引建立时,用户单独建立时,用户单独为其命名为其命名需使用单独命令需使用单独命令打开、关闭打
10、开、关闭索引文件的种类索引文件的种类索引文件的种类索引文件的种类索引索引索引索引 复合索引复合索引复合索引复合索引(扩展名(扩展名(扩展名(扩展名CDXCDXCDXCDX)独立独立独立独立(单一单一单一单一)索引索引索引索引 (扩展名(扩展名(扩展名(扩展名IDXIDXIDXIDX)非结构复合索引非结构复合索引非结构复合索引非结构复合索引结构复合索引结构复合索引结构复合索引结构复合索引索引文件的种类索引文件的种类索引文件的种类索引文件的种类复合索引文件(扩展名为复合索引文件(扩展名为复合索引文件(扩展名为复合索引文件(扩展名为.CDX.CDX.CDX.CDX)定义:定义:由多个关键字段值和其对
11、应的多个记录的物理位置由多个关键字段值和其对应的多个记录的物理位置构成。(一个索引文件中有多张构成。(一个索引文件中有多张“对照表对照表”)结构化复合索引文件结构化复合索引文件索引文件名与表文件同名(由系统自动生成)索引文件名与表文件同名(由系统自动生成)其打开和关闭与表文件同步,是表的一部分。其打开和关闭与表文件同步,是表的一部分。表文件修改时,系统自动更新该索引文件。表文件修改时,系统自动更新该索引文件。一个索引文件一个索引文件有多个索引有多个索引非结构化复合索引非结构化复合索引索引文件名由用户给出,要用专门的命令打开。索引文件名由用户给出,要用专门的命令打开。可随表文件关闭也可用命令关闭
12、。可随表文件关闭也可用命令关闭。独立索引文件独立索引文件独立索引文件独立索引文件(扩展名为扩展名为扩展名为扩展名为.IDX).IDX).IDX).IDX)(又称之单一索引文件又称之单一索引文件又称之单一索引文件又称之单一索引文件)只存储一个索引的文件,文件名由用户给出,要只存储一个索引的文件,文件名由用户给出,要用专门命令打开。用专门命令打开。不常用的索引或不常用的索引或临时性的索引临时性的索引菜单法菜单法:在在“表设计器表设计器”中创建中创建 (只能创建结构复合索引文件只能创建结构复合索引文件)创建索引创建索引注意:注意:不能对备注型或通用型字段建立索引;不能对备注型或通用型字段建立索引;不
13、能对备注型或通用型字段建立索引;不能对备注型或通用型字段建立索引;不要建立多余的无用的索引,会降低系统性能;不要建立多余的无用的索引,会降低系统性能;不要建立多余的无用的索引,会降低系统性能;不要建立多余的无用的索引,会降低系统性能;索引表达式是索引表达式是索引表达式是索引表达式是由多个字段组成由多个字段组成由多个字段组成由多个字段组成时要注意书写格式和数据类时要注意书写格式和数据类时要注意书写格式和数据类时要注意书写格式和数据类型的一致。即型的一致。即型的一致。即型的一致。即多个索引关键字段名间多个索引关键字段名间多个索引关键字段名间多个索引关键字段名间应用应用应用应用“号连接,且号连接,且
14、号连接,且号连接,且要用函数转换为要用函数转换为要用函数转换为要用函数转换为一样的数据类型一样的数据类型一样的数据类型一样的数据类型。创建索引实例创建索引实例1 1用用用用菜单法菜单法菜单法菜单法对对对对zgb.dbfzgb.dbfzgb.dbfzgb.dbf表建立复合索引表建立复合索引表建立复合索引表建立复合索引1.1.1.1.以工作部门的升序排列,普通索引,索引标识为以工作部门的升序排列,普通索引,索引标识为以工作部门的升序排列,普通索引,索引标识为以工作部门的升序排列,普通索引,索引标识为gzbmgzbmgzbmgzbm,并浏览显示。并浏览显示。并浏览显示。并浏览显示。2.2.2.2.按
15、按按按jbgz1jbgz1jbgz1jbgz1标识,建立以基本工资升序排列的普通索标识,建立以基本工资升序排列的普通索标识,建立以基本工资升序排列的普通索标识,建立以基本工资升序排列的普通索引。引。引。引。3.3.3.3.对男职工以其对男职工以其对男职工以其对男职工以其基本工资基本工资基本工资基本工资降序显示记录。(降序显示记录。(降序显示记录。(降序显示记录。(jbgz2jbgz2jbgz2jbgz2)4.4.4.4.以以以以工作部门工作部门工作部门工作部门升序排列,若部门相同,则按升序排列,若部门相同,则按升序排列,若部门相同,则按升序排列,若部门相同,则按工作时工作时工作时工作时间间间间
16、的升序排列。的升序排列。的升序排列。的升序排列。(bmsjbmsjbmsjbmsj)5.5.5.5.以以以以工作部门工作部门工作部门工作部门升序排列,若部门相同时,则按升序排列,若部门相同时,则按升序排列,若部门相同时,则按升序排列,若部门相同时,则按基本基本基本基本工资工资工资工资降序排列。降序排列。降序排列。降序排列。(bmgzbmgzbmgzbmgz)CDCN创建索引实例创建索引实例1 1F关键字表达式为关键字表达式为关键字表达式为关键字表达式为C C C C型和型和型和型和N N N N型时,一般将数值型数据转为型时,一般将数值型数据转为型时,一般将数值型数据转为型时,一般将数值型数据
17、转为字符型字符型字符型字符型数据,再用字符型连接符号数据,再用字符型连接符号数据,再用字符型连接符号数据,再用字符型连接符号“+”“+”“+”“+”连接;连接;连接;连接;或也或也可转为数值型数据:可转为数值型数据:转为字符型函数:转为字符型函数:转为字符型函数:转为字符型函数:STR(STR(STR(STR(数值型数据,长度数值型数据,长度数值型数据,长度数值型数据,长度 ,小数位,小数位,小数位,小数位)例:例:例:例:工作部门工作部门工作部门工作部门+str(106-+str(106-+str(106-+str(106-基本工资基本工资基本工资基本工资*100)*100)*100)*10
18、0)转为数值型函数:转为数值型函数:转为数值型函数:转为数值型函数:VAL(VAL(VAL(VAL(数字字符型数据,长度数字字符型数据,长度数字字符型数据,长度数字字符型数据,长度)例:例:例:例:val(val(val(val(工作部门工作部门工作部门工作部门)+)+)+)+基本工资基本工资基本工资基本工资 则原题意写为则原题意写为则原题意写为则原题意写为 val(val(val(val(工作部门工作部门工作部门工作部门)*106-)*106-)*106-)*106-基本工资基本工资基本工资基本工资*100*100*100*100菜单操作中默菜单操作中默菜单操作中默菜单操作中默认是升序排列认
19、是升序排列认是升序排列认是升序排列创建索引实例创建索引实例1 1F关键字表达式为关键字表达式为关键字表达式为关键字表达式为C C C C型和型和型和型和D D D D型时,要将日期型数据转为型时,要将日期型数据转为型时,要将日期型数据转为型时,要将日期型数据转为字符型字符型字符型字符型数据,再用字符型连接符号数据,再用字符型连接符号数据,再用字符型连接符号数据,再用字符型连接符号“+”“+”“+”“+”连接。连接。连接。连接。函数:函数:函数:函数:DTOC(DTOC(DTOC(DTOC(日期型数据)日期型数据)日期型数据)日期型数据)DTOS(DTOS(DTOS(DTOS(日期型数据)日期型
20、数据)日期型数据)日期型数据)“工作部门工作部门工作部门工作部门 工作时间工作时间工作时间工作时间”工作部门工作部门工作部门工作部门+dtos(+dtos(+dtos(+dtos(工作时间工作时间工作时间工作时间)操作示范操作示范结构化索引结构化索引非结构化索引非结构化索引Index On Index On Index On Index On Tag Tag Tag Tag OF OF OF OF For.CDX For.CDX For.CDX For 条件条件条件条件Ascending|DescendingAscending|DescendingAscending|DescendingAsc
21、ending|Descending Unique|CandidateUnique|CandidateUnique|CandidateUnique|Candidate Index On Index On Index On Index On Tag Tag Tag Tag For For For For 条件条件条件条件 Ascending|DescendingAscending|DescendingAscending|DescendingAscending|Descending Unique|CandidateUnique|CandidateUnique|CandidateUnique|Cand
22、idate 创建索引创建索引 升升 序序|降降 序序唯一索引唯一索引 候选索引候选索引命令法命令法:可以与字可以与字段同名段同名在数据库中讲解在数据库中讲解结构化索引结构化索引主索引的建立主索引的建立Alter table Alter table Alter table Alter table add primary key add primary key add primary key add primary key Tag Tag Tag Tag Index On Index On Index On Index On Tag Tag Tag Tag For For For For 条件条件
23、条件条件 Ascending|DescendingAscending|DescendingAscending|DescendingAscending|Descending Unique|CandidateUnique|CandidateUnique|CandidateUnique|Candidate 创建索引创建索引 升升 序序|降降 序序唯一索引唯一索引 候选索引候选索引命令法命令法:可以不打开但建立可以不打开但建立索引后自动被打开索引后自动被打开单索引单索引Index On Index On Index On Index On To To To To CompactUniqueCompac
24、tUniqueCompactUniqueCompactUnique Additive Additive Additive Additive建立新的索引文件时不建立新的索引文件时不建立新的索引文件时不建立新的索引文件时不关闭已打开的索引文件关闭已打开的索引文件关闭已打开的索引文件关闭已打开的索引文件创建索引创建索引快速存快速存取索引取索引单索引文件单索引文件只能按升序只能按升序命令法命令法:创建索引实例创建索引实例2 2用命令法对学生用命令法对学生用命令法对学生用命令法对学生.dbf.dbf.dbf.dbf表建立复合索引表建立复合索引表建立复合索引表建立复合索引1.1.1.1.以籍贯的升序排列,
25、普通索引,索引标识为以籍贯的升序排列,普通索引,索引标识为以籍贯的升序排列,普通索引,索引标识为以籍贯的升序排列,普通索引,索引标识为jgjgjgjg,并并并并浏览显示。浏览显示。浏览显示。浏览显示。2.2.2.2.按按按按cj1cj1cj1cj1标识,建立以外语成绩降序排列的普通索引。标识,建立以外语成绩降序排列的普通索引。标识,建立以外语成绩降序排列的普通索引。标识,建立以外语成绩降序排列的普通索引。3.3.3.3.对对对对男学生男学生男学生男学生以其以其以其以其出生日期出生日期出生日期出生日期降序显示记录。(降序显示记录。(降序显示记录。(降序显示记录。(narqnarqnarqnarq
26、)4.4.4.4.以以以以性别性别性别性别升序排列,若性别相同,则按数学成绩降升序排列,若性别相同,则按数学成绩降升序排列,若性别相同,则按数学成绩降升序排列,若性别相同,则按数学成绩降序排列。序排列。序排列。序排列。(xbcjxbcjxbcjxbcj)5.5.5.5.以以以以姓名姓名姓名姓名降序降序降序降序排列,若姓名相同时,则按排列,若姓名相同时,则按排列,若姓名相同时,则按排列,若姓名相同时,则按出生日期出生日期出生日期出生日期降序降序降序降序排列。排列。排列。排列。(xmrqxmrqxmrqxmrq)创建索引实例创建索引实例2 2用命令法对学生用命令法对学生用命令法对学生用命令法对学生
27、.dbf.dbf.dbf.dbf表建立复合索引表建立复合索引表建立复合索引表建立复合索引Use Use 学生学生Inde on Inde on 籍贯籍贯 tag jg tag jgBrowBrowInde on Inde on 外语外语 tag cj1 desc tag cj1 descListListInde on Inde on 出生日期出生日期 tag narq for tag narq for 性别性别=“=“男男”Disp allDisp allInde on Inde on 性别性别+str(100-+str(100-数学数学)tag xbcj)tag xbcjDisp allDi
28、sp allInde on Inde on 姓名姓名+dtosdtos(出生日期)出生日期)tag xmrq desc tag xmrq desc创建索引实例创建索引实例3 3用命令法对学生用命令法对学生用命令法对学生用命令法对学生.dbf.dbf.dbf.dbf表建立单索引表建立单索引表建立单索引表建立单索引1.1.1.1.按数学成绩降序建立索引按数学成绩降序建立索引按数学成绩降序建立索引按数学成绩降序建立索引Use Use Use Use 学生学生学生学生Inde on Inde on Inde on Inde on 数学数学数学数学 to su to su to su to su2.2.
29、2.2.按姓名升序建立索引按姓名升序建立索引按姓名升序建立索引按姓名升序建立索引Inde on Inde on Inde on Inde on 姓名姓名姓名姓名 to name to name to name to name 3.3.3.3.按性别建立唯一索引按性别建立唯一索引按性别建立唯一索引按性别建立唯一索引Inde on Inde on Inde on Inde on 性别性别性别性别 to xb2 uniq to xb2 uniq to xb2 uniq to xb2 uniq索引的编辑和应用索引的编辑和应用 索引文件的打开和关闭索引文件的打开和关闭索引文件的打开和关闭索引文件的打开和
30、关闭结构复合索引文件随着表文件的打开和关闭而同时进行;结构复合索引文件随着表文件的打开和关闭而同时进行;结构复合索引文件随着表文件的打开和关闭而同时进行;结构复合索引文件随着表文件的打开和关闭而同时进行;非结构复合索引文件和独立索引文件是用命令打开的。非结构复合索引文件和独立索引文件是用命令打开的。非结构复合索引文件和独立索引文件是用命令打开的。非结构复合索引文件和独立索引文件是用命令打开的。命令法打开索引文件命令法打开索引文件命令法打开索引文件命令法打开索引文件打开表文件的同时打开索引文件打开表文件的同时打开索引文件打开表文件的同时打开索引文件打开表文件的同时打开索引文件Use Use Us
31、e Use 表文件名表文件名表文件名表文件名 Index Index Index Index 索引文件名表索引文件名表索引文件名表索引文件名表表文件已打开后打开索引文件表文件已打开后打开索引文件表文件已打开后打开索引文件表文件已打开后打开索引文件Set Index To Set Index To Set Index To Set Index To Additive Additive Additive Additive 说明:说明:说明:说明:选择主控索引选择主控索引选择主控索引选择主控索引菜单法建立的结构复合索引文件虽是打开的,但不菜单法建立的结构复合索引文件虽是打开的,但不菜单法建立的结构复
32、合索引文件虽是打开的,但不菜单法建立的结构复合索引文件虽是打开的,但不是主控索引是主控索引是主控索引是主控索引,需指定才成为主控索引需指定才成为主控索引需指定才成为主控索引需指定才成为主控索引.用命令法建立的任一种索引,均为打开用命令法建立的任一种索引,均为打开用命令法建立的任一种索引,均为打开用命令法建立的任一种索引,均为打开,并且直接为并且直接为并且直接为并且直接为主控索引主控索引主控索引主控索引.主控索引的概念主控索引的概念主控索引的概念主控索引的概念对当前表记录顺序起控制作用的索引称为主控索引。对当前表记录顺序起控制作用的索引称为主控索引。对当前表记录顺序起控制作用的索引称为主控索引。
33、对当前表记录顺序起控制作用的索引称为主控索引。任何时侯只有一个主控索引任何时侯只有一个主控索引任何时侯只有一个主控索引任何时侯只有一个主控索引设置主控索引设置主控索引设置主控索引设置主控索引Set Order ToSet Order ToSet Order ToSet Order To索引编号索引编号索引编号索引编号IDXIDXIDXIDX文件名文件名文件名文件名TAG TAG TAG TAG 标识名标识名标识名标识名OF OF OF OF CDXCDXCDXCDX文件名文件名文件名文件名 仅有此部分时为出仅有此部分时为出取消主控索引取消主控索引推荐推荐表文件打开且相应的索引文件已打开表文件打
34、开且相应的索引文件已打开菜单法选择主控索引菜单法选择主控索引菜单法选择主控索引菜单法选择主控索引操作操作要点要点 进入进入进入进入“工作区属性工作区属性工作区属性工作区属性”窗口窗口窗口窗口“工工工工作作作作数数数数据据据据期期期期“工工工工具具具具按按按按钮钮钮钮,选选选选择择择择“属属属属性性性性”按按按按钮钮钮钮,进进进进入。入。入。入。或若为浏览表状态下选择菜单或若为浏览表状态下选择菜单或若为浏览表状态下选择菜单或若为浏览表状态下选择菜单“表表表表 属性属性属性属性”,进入。进入。进入。进入。在在在在“工工工工作作作作区区区区属属属属性性性性”窗窗窗窗口口口口的的的的“索索索索引引引引
35、顺顺顺顺序序序序”框框框框中中中中选选选选择择择择索索索索引引引引标识,按标识,按标识,按标识,按“确定确定确定确定”按钮。按钮。按钮。按钮。关闭索引文件关闭索引文件单索引、非结构复合索引被关,单索引、非结构复合索引被关,结构复合索引是取消当前索引结构复合索引是取消当前索引Set Index ToSet Index ToClose IndexClose Index命令法关闭索引文件命令法关闭索引文件命令法关闭索引文件命令法关闭索引文件有关索引的命令有关索引的命令Index OnIndex OnIndex OnIndex On TagTagTagTag OF OF OF OF For.CDX F
36、or.CDX For.CDX For 条件条件条件条件Ascending|DescendingAscending|DescendingAscending|DescendingAscending|Descending Unique|CandidateUnique|CandidateUnique|CandidateUnique|Candidate Index OnIndex OnIndex OnIndex On TagTagTagTag For For For For 条件条件条件条件 Ascending|DescendingAscending|DescendingAscending|Descen
37、dingAscending|Descending Unique|CandidateUnique|CandidateUnique|CandidateUnique|Candidate Alter table Alter table Alter table Alter table add primary key add primary key add primary key add primary key Tag Tag Tag Tag 结构结构非结构非结构对库表建主索引对库表建主索引建立索引建立索引Index On Index On Index On Index On To To To To Co
38、mpactUniqueCompactUniqueCompactUniqueCompactUnique Additive Additive Additive Additive单索引单索引Use Use Use Use 表文件名表文件名表文件名表文件名 Index Index Index Index 索引文件名表索引文件名表索引文件名表索引文件名表Set Index To Set Index To Set Index To Set Index To Additive Additive Additive Additive索引打开索引打开表、索同时表、索同时表已开、再开索表已开、再开索单或非结构单或非
39、结构索引编号索引编号索引编号索引编号|IDXIDXIDXIDX文件名文件名文件名文件名|TAG TAG TAG TAG 标识名标识名标识名标识名OF OF OF OF CDXCDXCDXCDX文件名文件名文件名文件名 Set Order ToSet Order ToSet Order ToSet Order To设置主控索引设置主控索引取消主控索引取消主控索引Set Order ToSet Order ToSet Order ToSet Order ToSet Index ToSet Index ToSet Index ToSet Index ToClose IndexClose IndexC
40、lose IndexClose Index关闭索引文件关闭索引文件对单或非结构而言对单或非结构而言对结构索引是取消主控对结构索引是取消主控索引的修改和删除索引的修改和删除索引的修改和删除索引的修改和删除修改修改修改修改删除删除删除删除表设计器中直接修改和删除表设计器中直接修改和删除Delete Tag All/Delete Tag All/,2 Delete File Delete File 索引文件名索引文件名 删除复合索引文删除复合索引文删除复合索引文删除复合索引文件中的索引标记件中的索引标记件中的索引标记件中的索引标记是对关闭的独立或非结是对关闭的独立或非结构复合索引文件删除构复合索引文
41、件删除更新更新更新更新表中数据修改时已表中数据修改时已打开的索引打开的索引自动更新,而未打自动更新,而未打开的索引文件则要打开后用命令:开的索引文件则要打开后用命令:Reindex Reindex 更新更新索引查询索引查询索引的应用索引的应用索引的应用索引的应用 Seek Seek 表达式表达式说明:对表达式的内容进行查说明:对表达式的内容进行查找,找,找到找到时时记录指针指在该记记录指针指在该记录上录上,未找到未找到时记录时记录指针则在指针则在文件尾文件尾。用。用“Skip”“Skip”辅助命辅助命令查找下一条件满足条件的记令查找下一条件满足条件的记录录Find Find 表达式表达式SEE
42、K(SEEK(索引关键字表达式索引关键字表达式)用用用用FOUND()FOUND()FOUND()FOUND()函数测试查找是否成功函数测试查找是否成功函数测试查找是否成功函数测试查找是否成功,找到为找到为找到为找到为T,T,T,T,否则为否则为否则为否则为F F F F。也可用也可用也可用也可用EOF()EOF()EOF()EOF()函数,找到时该函数值为函数,找到时该函数值为函数,找到时该函数值为函数,找到时该函数值为FFFF,没找到为,没找到为,没找到为,没找到为TTTT 。解释见教材P41当没找到记录时,当没找到记录时,记录指针指到文记录指针指到文件尾。件尾。SeekSeek中的表达式
43、说明中的表达式说明:表达式的数据类型有表达式的数据类型有C C、N N、L L、D D,但,但需按各类型需按各类型的格式书写的格式书写。字符型变量前无需加字符型变量前无需加“&”“&”FindFind中的表达式说明中的表达式说明:表达式的数据类型只有表达式的数据类型只有C C、N N,字符型数据无需加字符型数据无需加定界符。定界符。字符型变量前需加字符型变量前需加“&”“&”。“&”“&”宏代换函数宏代换函数将紧随其后的字符型内存变量的值的定界符去掉将紧随其后的字符型内存变量的值的定界符去掉。例:例:a1=“ABCD”a1=“ABCD”a2=“a1”a2=“a1”?&a2?&a2 与与?a1?
44、a1等功能等功能 结果结果 ABCDABCD?”&a1”?”&a1”与与?“ABCD“?“ABCD“等功能等功能 结果结果 ABCDABCD?&a1?&a1 结果结果 没找到变量没找到变量ABCDABCD b1=67 b1=67 b2=“b1”b2=“b1”?&b1?&b1 Use 学生学生Inde on 姓名姓名 tag xm&若已建立则打开并指定为主控索引若已建立则打开并指定为主控索引Seek “王王”&find 王王?Found()&判断是否找到判断是否找到,若为若为“T”,则找到了则找到了DispSkipdisp查找实例查找实例在学生在学生在学生在学生.DBF.DBF.DBF.DBF中
45、查找中查找中查找中查找查找所有查找所有查找所有查找所有“王王王王”姓同学的记录;姓同学的记录;姓同学的记录;姓同学的记录;直到无显示为止Use Use 学生学生 inde name inde name将数值型数据转换为字符型函数Inde on alltrim(str(Inde on alltrim(str(Inde on alltrim(str(Inde on alltrim(str(外语外语外语外语,5,1)+,5,1)+,5,1)+,5,1)+性别性别性别性别 tag gzxb tag gzxb tag gzxb tag gzxbSeek “89.0Seek “89.0Seek “89.0
46、Seek “89.0女女女女”&find 89.0”&find 89.0”&find 89.0”&find 89.0女女女女?found()&found()&found()&found()&结果为结果为结果为结果为.T.T.T.T.时操作下一步时操作下一步时操作下一步时操作下一步DispDispDispDispSkipSkipSkipSkip?eof()&eof()&eof()&eof()&结果为结果为结果为结果为.F.F.F.F.时操作下一步时操作下一步时操作下一步时操作下一步DispDispDispDisp SkipSkipSkipSkip?eof()&eof()&eof()&eof()&
47、结果为结果为结果为结果为.T.T.T.T.时停止操作时停止操作时停止操作时停止操作去空格函数 外语成绩为外语成绩为外语成绩为外语成绩为89.089.089.089.0的女同学记录的女同学记录的女同学记录的女同学记录“5”为转换的总长度“1”为转换的小数位数Inde on Inde on Inde on Inde on 出生日期出生日期出生日期出生日期 tag rq tag rq tag rq tag rqSeek 1987-02-04Seek 1987-02-04Seek 1987-02-04Seek 1987-02-04DispDispDispDispSkipSkipSkipSkipdisp
48、dispdispdisp 1987 1987年年2 2月月4 4日出生的同学日出生的同学&若已建立则打开并指定为主控索引若已建立则打开并指定为主控索引当根据多个关键字段当根据多个关键字段进行排序,且排序的进行排序,且排序的方向又是一致时使用方向又是一致时使用建立排序建立排序Sort To Sort To OnOn /A/D/C/A/D/C,/A/D/C/A/D/CAscending|DescendingAscending|Descending 范围范围ForFor|While|WhileFieldsFields 按指定的关键字段进行排序,并将结果置于指定的按指定的关键字段进行排序,并将结果置于
49、指定的新表中。新表中。命令格式命令格式4.4 4.4 表统计表统计1求记录个数求记录个数2求和求和3求平均值求平均值4综合统计综合统计5分类汇总分类汇总缺省时对当前表中所缺省时对当前表中所有的数值型字段求和。有的数值型字段求和。变量的个数要与表达变量的个数要与表达式项数一致。式项数一致。可将统计的结果赋值给可将统计的结果赋值给内存变量。内存变量。求和的结果若超出字段所定义的宽度求和的结果若超出字段所定义的宽度时,系统用该字段宽度的时,系统用该字段宽度的“*“表示。表示。1求记录个数求记录个数格式:格式:Count 范围范围 For/While To 功能:统计当前表中符合范围、条件的记录个数。
50、功能:统计当前表中符合范围、条件的记录个数。2求和求和格式:格式:Sum 数值型字段名表或表达式数值型字段名表或表达式 范围范围 For/While To 功能:对当前数据表中的数值型字段求和,或由数功能:对当前数据表中的数值型字段求和,或由数 值型字段表达式进行累加后求和。值型字段表达式进行累加后求和。3 3求平均值求平均值格式:格式:AverageAverage 数值型字段名表或表达式数值型字段名表或表达式 范围范围 For/While For/While To To 功能:对当前数据表中的数值型字段或由功能:对当前数据表中的数值型字段或由数值型字段数值型字段 表达式累加后求平均表达式累加