VFP第9部分(排序索引及多表操作)ppt课件.ppt
《VFP第9部分(排序索引及多表操作)ppt课件.ppt》由会员分享,可在线阅读,更多相关《VFP第9部分(排序索引及多表操作)ppt课件.ppt(55页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、数据表的分类排序数据表的分类排序 命令格式命令格式sorttoon/a/d/c产生的表是关闭的产生的表是关闭的(教科书(教科书P73)分类排序有什么缺点数据表的索引排序数据表的索引排序 索引是按索引关键字表达式的索引是按索引关键字表达式的值使数据表中的记录有序排列的一值使数据表中的记录有序排列的一种技术,在种技术,在Visual FoxProVisual FoxPro系统中系统中是借助于是借助于索引文件索引文件实现的。实现的。1 1、什么是索引、什么是索引索引关键字的值、记录号(教科书(教科书P74)Visual Visual FoxProFoxPro系系统统提提供供了了四四种种不不同同的的索
2、索引引类类型型,它们分别是:它们分别是:2 2、索引的类型、索引的类型主主索索引引:仅适用于数据库表,不允许关键字段有重复值,一个数据表只能建一个主索引。候候选选索索引引:不允许索引关键字段有重复值普通索引普通索引:最常用的索引类型,无任何限制唯一索引唯一索引:允许索引关键字段有重复值 Visual FoxProVisual FoxPro系统支持单系统支持单索引文件(索引文件(.idxidx)和复合索和复合索引文件(引文件(.cdxcdx)。)。3 3、索引文件的类型、索引文件的类型 (1 1)单索引文件(略)单索引文件(略)单索引文件是每个索引存放在一单索引文件是每个索引存放在一个独立的文件
3、(个独立的文件(.idxidx)中。中。(2 2)结构化复合索引文件)结构化复合索引文件 结构化复合索引文件(结构化复合索引文件(.cdxcdx)可可以在同一个文件中包含多个索引,其以在同一个文件中包含多个索引,其中每个索引称为中每个索引称为索引标识索引标识。更重要的是,对于结构复合索更重要的是,对于结构复合索引,引,无论何时打开表文件,该索引无论何时打开表文件,该索引都会自动打开。都会自动打开。其文件名与表名相同其文件名与表名相同,一个表文一个表文件只产生一个结构化复合索引文件件只产生一个结构化复合索引文件。(3 3)独立复合索引文件(略)独立复合索引文件(略)4 4、索引的建立、索引的建立
4、(教科书(教科书P75)Indexontagascending|descending自动产生与表同名的.CDX文件结构化复合索引文件的建立结构化复合索引文件的建立(命令方式命令方式)特别注意:特别注意:建立索引时,当建立索引时,当涉及到两个或两个以上的不涉及到两个或两个以上的不同类型的字段时:同类型的字段时:1)顺序若相同,则将非字符型转换)顺序若相同,则将非字符型转换为字符型,然后用为字符型,然后用“+”连接成一个连接成一个字符表达式。字符表达式。2)顺序若不同,则以字符型字段)顺序若不同,则以字符型字段的顺序为准,的顺序为准,若数字型字段的顺若数字型字段的顺序与字符型不同,则用一个较大序与
5、字符型不同,则用一个较大数减去该字段,再转化为字符型数减去该字段,再转化为字符型;若日期型字段的顺序与字符型不若日期型字段的顺序与字符型不同,则用一个较大的日期减去该同,则用一个较大的日期减去该字段,再转化为字符型字段,再转化为字符型,然后用,然后用“+”连接成一个字符表达式。连接成一个字符表达式。【例例】就学生表建立结构复合索引文件,其中就学生表建立结构复合索引文件,其中包含包含2 2个索引:个索引:(1 1)按学号的升序排列,编号相同的记录只显)按学号的升序排列,编号相同的记录只显示第一条。示第一条。(2 2)先按性别升序,性别相同再按入学成绩降)先按性别升序,性别相同再按入学成绩降序排列
6、。序排列。USE USE 学生学生 INDEX ON INDEX ON 学号学号 TAG sy1 TAG sy1 UNIQUEUNIQUE INDEX ON INDEX ON 性别性别+STR(1000-+STR(1000-入学成绩入学成绩)TAG sy2)TAG sy2在表设计器中建立索引在表设计器中建立索引表表设计器中的设计器中的“索引索引”选项卡选项卡5 5、索引的使用、索引的使用 一个表文件可以建立多个索引,一个表文件可以建立多个索引,在操作中可以同时打开多个索引,在操作中可以同时打开多个索引,但是但是任何时候只有一个索引起作用任何时候只有一个索引起作用。索引依赖于表文件而存在索引依赖
7、于表文件而存在,它,它随表的关闭而自动关闭。随表的关闭而自动关闭。当前起作用的索引标识称为主当前起作用的索引标识称为主控索引控索引。要使用索引必须满足以下条件:要使用索引必须满足以下条件:打开表;打开表;确定主控索引;确定主控索引;setordertotag(1)确定主控索引)确定主控索引命令格式:命令格式:(教科书(教科书P77)(2)删除索引)删除索引deletetagall|(3)索引更新)索引更新自动更新自动更新 使用索引文件后,虽然表中各记录的物理顺序并使用索引文件后,虽然表中各记录的物理顺序并未改变。但未改变。但记录指针不再按物理顺序移动,而是按主记录指针不再按物理顺序移动,而是按
8、主控索引文件中记录的逻辑顺序移动控索引文件中记录的逻辑顺序移动,于是整个表中的,于是整个表中的记录是按索引关键表达式值排序的效果。记录是按索引关键表达式值排序的效果。使用索引文件时,还要特别注意以下几点:使用索引文件时,还要特别注意以下几点:(1 1)在使用)在使用GOGO命令时,命令时,GO GO 使记录指针使记录指针指向具体的物理记录号,而与索引无关,而指向具体的物理记录号,而与索引无关,而GO GO TOP|BOTTOMTOP|BOTTOM将使记录指针指向逻辑首或逻辑尾记录,将使记录指针指向逻辑首或逻辑尾记录,这时这时GO TOPGO TOP不再等同于不再等同于GO 1GO 1。(2 2
9、)SKIPSKIP命令按逻辑顺序移动记录指针。命令按逻辑顺序移动记录指针。(3 3)表被打开后,记录指针位于)表被打开后,记录指针位于TOPTOP位置位置。【例例】当索引起作用时,分析记录指针的移动当索引起作用时,分析记录指针的移动规律。规律。USE USE 学生学生 INDEX ON INDEX ON 入学成绩入学成绩 TAG sy3TAG sy3 GO 6 GO 6?RECNO(),?RECNO(),姓名姓名&显示显示6 6 李勤奋李勤奋 SKIPSKIP?RECNO(),?RECNO(),姓名姓名&显示显示5 5 欧阳天地欧阳天地复合结构索引文件的类型名称是复合结构索引文件的类型名称是(
10、)A)PJTB)PRGC)CDXD)MEM不允许字段值出现重复的索引是(不允许字段值出现重复的索引是()。)。A)侯选索引和主索引)侯选索引和主索引B)普通索引和惟一索引)普通索引和惟一索引C)惟一索引和主索引)惟一索引和主索引D)惟一索引)惟一索引自由表gz.dbf有姓名/C/8、出生年月/D、基本工资/N/6/2等字段,要建立以“姓名、基本工资”两字段的组合索引,其索引关键字表达式是()。(A)姓名+基本工资 (B)“姓名”+“基本工资”(C)“姓名”+基本工资 (D)姓名+str(基本工资,6,2)有数据表文件有数据表文件CJ.DBF,按姓名,按姓名(C,8)的升序,上的升序,上机成绩机
11、成绩(N,6,2)的降序建立索引,正确的命令是的降序建立索引,正确的命令是()。)。A.INDEXON姓名姓名-上机成绩上机成绩TAGCJIDXB.INDEXON姓名姓名+STR(-上机成绩,上机成绩,6,2)TAGCJIDXC.INDEXON姓名姓名+STR(1000-上机成绩)上机成绩)TAGCJIDXD.INDEXON姓名姓名/A,上机成绩,上机成绩/DTAGCJIDX某数据表有字段:学号某数据表有字段:学号/C、生日、生日/D、成绩、成绩/N等。等。要建立学号、成绩、生日的组合索引,其索引要建立学号、成绩、生日的组合索引,其索引关键字表达式是(关键字表达式是()。)。A)学号)学号+成
12、绩成绩+生日生日B)学号学号+成绩成绩+生日生日C)学号)学号+STR(成绩成绩,5,1)+STR(生日生日,8)D)学号)学号+STR(成绩成绩,5,1)+DTOC(生日生日,1)多表操作多表操作 若要使用多个表,就要使用多若要使用多个表,就要使用多个工作区。一个工作区是一个编号个工作区。一个工作区是一个编号区域,它标识一个已打开的表。区域,它标识一个已打开的表。在在应用程序中通常通过使用应用程序中通常通过使用工作区号工作区号和和工作区别名工作区别名来标识。来标识。(教科书(教科书P82)1 1、工作区号、工作区号 Visual Visual foxProfoxPro提供了提供了327673
13、2767个个工作区,编号从工作区,编号从1 1到到3276732767。每个工作区只允许打开一个表,每个工作区只允许打开一个表,一个表只能在一个工作区打开,系一个表只能在一个工作区打开,系统默认的工作区为统默认的工作区为1 1号工作区。号工作区。2 2、别名、别名(1 1)前十个工作区除了可用)前十个工作区除了可用1 11010来标来标识外,还可用识外,还可用A AJ J来表示来表示工作区的别名工作区的别名。(2 2)定义别名)定义别名use use alias alias 格式:格式:3 3、选择当前工作区、选择当前工作区select|如没有给表定义别名,如没有给表定义别名,则可以用数据表名
14、作则可以用数据表名作为别名。为别名。selesele 0 0 表示选定当前未使用的表示选定当前未使用的最小号工作区。最小号工作区。use use in in|不改变当前工作区不改变当前工作区【例例】在不同的工作区分别打开学生在不同的工作区分别打开学生.dbf.dbf、选课、选课.dbf.dbf和课程和课程.dbf 3.dbf 3个表,命令序列如下:个表,命令序列如下:CLOSE ALL&CLOSE ALL&关闭所有打开的文件关闭所有打开的文件SELECT 2SELECT 2USE USE 学生学生&选择选择2 2号工作区打开学生表号工作区打开学生表SELECT CSELECT CUSE USE
15、 课程课程&选择选择3 3号工作区打开课程表号工作区打开课程表USE USE 选课选课 IN 5&IN 5&在在5 5号工作区打开选课表号工作区打开选课表引用非当前工作区表的字段必须引用非当前工作区表的字段必须冠以别名,引用格式为:冠以别名,引用格式为:别名别名.字段名字段名别名别名-字段名字段名【例例】在在1 1号工作区打开学生表,在号工作区打开学生表,在2 2号工作区号工作区打开选课表;当前工作区为打开选课表;当前工作区为1 1号,显示选课表中号,显示选课表中当前记录的学号、姓名、课程号和成绩字段的当前记录的学号、姓名、课程号和成绩字段的值。值。命令序列如下:命令序列如下:(演示,并移动指
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VFP 部分 排序 索引 操作 ppt 课件
限制150内