VFP第8部分(排序索引及多表操作)解析课件.ppt

上传人(卖家):三亚风情 文档编号:3004422 上传时间:2022-06-21 格式:PPT 页数:55 大小:363KB
下载 相关 举报
VFP第8部分(排序索引及多表操作)解析课件.ppt_第1页
第1页 / 共55页
VFP第8部分(排序索引及多表操作)解析课件.ppt_第2页
第2页 / 共55页
VFP第8部分(排序索引及多表操作)解析课件.ppt_第3页
第3页 / 共55页
VFP第8部分(排序索引及多表操作)解析课件.ppt_第4页
第4页 / 共55页
VFP第8部分(排序索引及多表操作)解析课件.ppt_第5页
第5页 / 共55页
点击查看更多>>
资源描述

1、数据表的分类排序数据表的分类排序 命令格式命令格式产生的表是关闭的产生的表是关闭的分类排序有什么缺点数据表的索引排序数据表的索引排序 1 1、什么是索引、什么是索引索引关键字的值、记录号 Visual FoxPro Visual FoxPro系统提供了系统提供了四种不同的索引类型,它们四种不同的索引类型,它们分别是:分别是:2 2、索引的类型、索引的类型主索引主索引:仅适用于数据库表,不允许关键字段有重复值,一个数据表只能建一个主索引。 候选索引候选索引:不允许索引关键字段有重复值普通索引普通索引:最常用的索引类型,无任何限制 唯一索引唯一索引:允许索引关键字段有重复值 Visual FoxP

2、roVisual FoxPro系统支持单系统支持单索引文件(索引文件(.idx.idx)和复合索)和复合索引文件(引文件(.cdx.cdx)。)。3 3、索引文件的类型、索引文件的类型 单索引文件是每个索引存放在一单索引文件是每个索引存放在一个独立的文件(个独立的文件(.idx.idx) )中。中。 结构化复合索引文件(结构化复合索引文件(.cdx.cdx)可以)可以在同一个文件中包含多个索引,其中在同一个文件中包含多个索引,其中每个索引称为每个索引称为索引标识索引标识。 更重要的是,对于结构复合索引,更重要的是,对于结构复合索引,。4 4、索引的建立、索引的建立自动产生与表同名的.CDX文件

3、 特别注意:特别注意: 建立索引时,当建立索引时,当涉及到两个或两个以上的不涉及到两个或两个以上的不同类型的字段时:同类型的字段时:1)顺序若相同,则将非字符型转)顺序若相同,则将非字符型转换为字符型,然后用换为字符型,然后用“+”连接成一连接成一个字符表达式。个字符表达式。2)顺序若不同,则以字符型字段)顺序若不同,则以字符型字段的顺序为准,的顺序为准,若数字型字段的顺若数字型字段的顺序与字符型不同,则用一个较大序与字符型不同,则用一个较大数减去该字段,再转化为字符型数减去该字段,再转化为字符型;若日期型字段的顺序与字符型不若日期型字段的顺序与字符型不同,则用一个较大的日期减去该同,则用一个

4、较大的日期减去该字段,再转化为字符型字段,再转化为字符型,然后用,然后用“+”连接成一个字符表达式。连接成一个字符表达式。【例】【例】 就学生表建立结构复合索引文件,其中就学生表建立结构复合索引文件,其中包含包含2 2个索引:个索引:(1 1)按学号的升序排列,编号相同的记录只显)按学号的升序排列,编号相同的记录只显示第一条。示第一条。(2 2)先按性别升序,性别相同再按入学成绩降)先按性别升序,性别相同再按入学成绩降序排列。序排列。 USE USE 学生学生 INDEX ON INDEX ON 学号学号 TAG sy1 TAG sy1 UNIQUEUNIQUE INDEX ON INDEX

5、ON 性别性别+STR(1000-+STR(1000-入学成绩入学成绩) TAG sy2) TAG sy2表设计器中的表设计器中的“索引索引”选项卡选项卡5 5、索引的使用、索引的使用 一个表文件可以建立多个索引,一个表文件可以建立多个索引,在操作中可以同时打开多个索引,在操作中可以同时打开多个索引,但是但是任何时候只有一个索引起作用任何时候只有一个索引起作用。 索引依赖于表文件而存在索引依赖于表文件而存在,它,它随表的关闭而自动关闭。随表的关闭而自动关闭。 命令格式:命令格式:自动更新自动更新 使用索引文件后,虽然表中各记录的物理顺序使用索引文件后,虽然表中各记录的物理顺序并未改变。但并未改

6、变。但记录指针不再按物理顺序移动,而是按记录指针不再按物理顺序移动,而是按主控索引文件中记录的逻辑顺序移动主控索引文件中记录的逻辑顺序移动,于是整个表中,于是整个表中的记录是按索引关键表达式值排序的效果。的记录是按索引关键表达式值排序的效果。 使用索引文件时,还要特别注意以下几点:使用索引文件时,还要特别注意以下几点: (1 1)在使用)在使用GOGO命令时,命令时,GO GO 使记录指针使记录指针指向具体的物理记录号,而与索引无关,而指向具体的物理记录号,而与索引无关,而GO GO TOP|BOTTOMTOP|BOTTOM将使记录指针指向逻辑首或逻辑尾记录,将使记录指针指向逻辑首或逻辑尾记录

7、,这时这时GO TOPGO TOP不再等同于不再等同于GO 1GO 1。 (2 2)SKIPSKIP命令按逻辑顺序移动记录指针。命令按逻辑顺序移动记录指针。 (3 3)表被打开后,记录指针位于)表被打开后,记录指针位于TOPTOP位置位置。【例】【例】 当索引起作用时,分析记录指针的移动当索引起作用时,分析记录指针的移动规律。规律。 USE USE 学生学生 INDEX ON INDEX ON 入学成绩入学成绩 TAG sy3TAG sy3 GO 6 GO 6 ? RECNO(), ? RECNO(),姓名姓名 &显示显示6 6 李勤奋李勤奋 SKIPSKIP ? RECNO(), ? REC

8、NO(),姓名姓名 &显示显示5 5 欧阳天地欧阳天地复合结构索引文件的类型名称是复合结构索引文件的类型名称是( )A)PJTB)PRGC)CDXD)MEM 不允许字段值出现重复的索引是不允许字段值出现重复的索引是( )。)。 A)侯选索引和主索引)侯选索引和主索引 B)普通索引和惟一索引)普通索引和惟一索引 C)惟一索引和主索引)惟一索引和主索引 D)惟一索引)惟一索引 自由表gz.dbf有姓名/C/8、出生年月/D、基本工资/N/6/2等字段,要建立以“姓名、基本工资”两字段的组合索引,其索引关键字表达式是( )。(A)姓名+基本工资 (B)“姓名”+“基本工资”(C)“姓名”+基本工资

9、(D) 姓名+str(基本工资,6,2)有数据表文件有数据表文件CJ.DBF,按姓名,按姓名(C,8)的升序,上的升序,上机成绩机成绩(N,6,2)的降序建立索引,正确的命令是的降序建立索引,正确的命令是( )。)。A.INDEX ON 姓名姓名-上机成绩上机成绩 TAG CJIDX B.INDEX ON 姓名姓名+STR(-上机成绩,上机成绩,6,2) TAG CJIDXC.INDEX ON 姓名姓名+STR(1000-上机成绩)上机成绩) TAG CJIDXD.INDEX ON 姓名姓名/A,上机成绩,上机成绩/D TAG CJIDX 某数据表有字段:学号某数据表有字段:学号/C、生日、生

10、日/D、成绩、成绩/N等。等。要建立学号、成绩、生日的组合索引,其索引要建立学号、成绩、生日的组合索引,其索引关键字表达式是(关键字表达式是( )。)。A)学号)学号+成绩成绩+生日生日 B)学号学号+成绩成绩+生日生日C)学号)学号+STR(成绩成绩,5,1)+STR(生日生日,8) D)学号)学号+STR(成绩成绩,5,1)+DTOC(生日生日,1) 多表操作多表操作 若要使用多个表,就要使用多个若要使用多个表,就要使用多个工作区。一个工作区是一个编号区工作区。一个工作区是一个编号区域,它标识一个已打开的表。域,它标识一个已打开的表。在应在应用程序中通常通过使用用程序中通常通过使用工作区号

11、工作区号和和工作区别名工作区别名来标识。来标识。 1 1、工作区号、工作区号 Visual foxProVisual foxPro提供了提供了3276732767个个工作区,编号从工作区,编号从1 1到到3276732767。 2 2、别名、别名(1 1)前十个工作区除了可用)前十个工作区除了可用1 11010来标来标识外,还可用识外,还可用A AJ J来表示来表示。 (2 2)定义别名)定义别名格式:格式:3 3、选择当前工作区、选择当前工作区如没有给表定义别名,如没有给表定义别名,则可以用数据表名作则可以用数据表名作为别名。为别名。 selesele 0 0 表示选定当前未使用的最表示选定

12、当前未使用的最小号工作区。小号工作区。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 课程课程 & & 选择选择3 3号工作区打开课程表号工作区打开

13、课程表USE USE 选课选课 IN 5 & IN 5 & 选择选择5 5号工作区打开选课表号工作区打开选课表 引用非当前工作区表的字段必须引用非当前工作区表的字段必须冠以别名,引用格式为:冠以别名,引用格式为: 【例】在【例】在1 1号工作区打开学生表,在号工作区打开学生表,在2 2号工作区号工作区打开选课表;当前工作区为打开选课表;当前工作区为1 1号,显示选课表号,显示选课表中当前记录的学号、姓名、课程号和成绩字段中当前记录的学号、姓名、课程号和成绩字段的值。的值。命令序列如下:命令序列如下:CLOSE ALL & CLOSE ALL & 关闭所有打开的文件关闭所有打开的文件SELECT

14、 1SELECT 1USE USE 学生学生 & & 选择选择1 1号工作区打开学生表号工作区打开学生表USE USE 选课选课 IN 2 & IN 2 & 在在2 2号工作区打开选课表,当前号工作区打开选课表,当前工作区为工作区为1 1号号? ? 学号学号,姓名姓名, ,选课选课. .课程号课程号, ,选课选课-成绩成绩学生管理数据库中的表学生管理数据库中的表 bofbof():文件开始的测试函数:文件开始的测试函数 eofeof():文件结束的测试函数:文件结束的测试函数 recnorecno():返回当前记录号:返回当前记录号 selesele() ():返回当前工作区区号:返回当前工作

15、区区号 4 4、工作区常用函数、工作区常用函数建立表间的关联关系建立表间的关联关系(临时关系)(临时关系) 要在两个或两个以上的表之要在两个或两个以上的表之间进行数据操作时,通常有间进行数据操作时,通常有两种方法。两种方法。1 1、关联的概念、关联的概念 每个工作区打开的表中都存在一每个工作区打开的表中都存在一个记录指针,指针指向的记录是当个记录指针,指针指向的记录是当前记录,如果表之间没有关系,则前记录,如果表之间没有关系,则各个表的记录指针各个表的记录指针相互独立相互独立,即当,即当前工作区指针移动时,其他工作区前工作区指针移动时,其他工作区的指针不移动。的指针不移动。所谓关联,就是让不同

16、工作区数据表的所谓关联,就是让不同工作区数据表的记录指针建立一种临时的联动关系。使记录指针建立一种临时的联动关系。使一个表的记录指针移动时,能带动另一一个表的记录指针移动时,能带动另一个表的记录指针按一定的条件作相应地个表的记录指针按一定的条件作相应地移动。移动。前者称为关联表(主动表、父前者称为关联表(主动表、父表),后者称为被关联表(被动表、子表),后者称为被关联表(被动表、子表)表)关键字为唯一值关键字为唯一值 关键字为唯一值关键字为唯一值 一一关键字为重复值关键字为重复值 关键字为唯一值关键字为唯一值 多一关键字为唯一值关键字为唯一值 关键字为重复值关键字为重复值 一多关键字为重复值关

17、键字为重复值 关键字为重复值关键字为重复值 多多父表父表子表子表主动被动建立表间的关联建立表间的关联 建立数据库文件中表间关联,建立数据库文件中表间关联,。 建立两个表之间的建立两个表之间的“一对一一对一”和和“多对一多对一”关联的步骤:关联的步骤: 有重复值为父表说明:说明:建立关联的命令建立关联的命令 不同名的字段只要类型和数值相同也不同名的字段只要类型和数值相同也可建立关联可建立关联。关联后,父表指针移动带动子表指针关联后,父表指针移动带动子表指针移动;而移动;而。实验指导书实验指导书P35 实验实验15任务任务1(1)additive additive 一般用于三个或三个以上的一般用于

18、三个或三个以上的表之间建立多重关联,第表之间建立多重关联,第2 2、3 3个关联使用个关联使用该选项。该选项。set rela to recn()+Nset rela to recn()+N into into 把记把记录号作关键字建立关联录号作关键字建立关联。关闭或重新打开数据表,关联就会消失。关闭或重新打开数据表,关联就会消失。(故称为(故称为临时关系临时关系)BB AASele 1Use AA inde on 字段字段 tag zdSele 2Use BBSet rela to 字段字段 into A(或(或 AA或或1)字段字段Sele 0Use AA inde on 字段字段 tag

19、 zdSele 0Use BBSet rela to 字段字段 into AAAA BB CC或或AA BBAA CC字段字段1字段字段2字段字段1字段字段2(见教科书第(见教科书第84页例页例4.22)set skip to set skip to , , 2 一般不用 用在用在set relation命令之后命令之后,说明已建说明已建关联的性质为一多关系。关联的性质为一多关系。建立表间的一对多关系建立表间的一对多关系例: 在学生表和选课表中,显示成绩80分的学生的学号、姓名、所学课程的课程号和成绩。学生管理数据库中的表学生管理数据库中的表set safety offclose allcle

20、arselect 1use 学生学生 alias xsindex on 学号学号 tag xhselect 2use 选课选课set relation to 学号学号 into xs系统环境设置表环境设置list for 成绩成绩80fields 学号学号,xs.姓名姓名,课程号课程号, 成绩成绩close allset safety oncancel数据处理恢复系统环境 主索引与永久关系主索引与永久关系有些数据表格和其他数据表格之有些数据表格和其他数据表格之间存在着某些间存在着某些关系关系,我们需要将这些,我们需要将这些有关系的数据表格纳入同一个数据库有关系的数据表格纳入同一个数据库中,并建

21、立其彼此之间的关系,使用中,并建立其彼此之间的关系,使用者才能更好的运用数据表格,更容易者才能更好的运用数据表格,更容易达到数据管理的目的。达到数据管理的目的。1 1)主索引的建立)主索引的建立 2 2)永久关系和临时关系)永久关系和临时关系 。 在在“数据库设计器数据库设计器”窗口中,两窗口中,两个数据表格之间的连线,就是个数据表格之间的连线,就是。 (见教科书(见教科书9090页图页图5.35.3)字段之间的关系(不管是永久字段之间的关系(不管是永久性的还是临时性的),都是要靠性的还是临时性的),都是要靠来达成的,也就是说,某个字段来达成的,也就是说,某个字段欲建立关系,需先以此字段的内容

22、欲建立关系,需先以此字段的内容建立索引,再利用此索引建立关系。建立索引,再利用此索引建立关系。表之间的关系表之间的关系 永久关系连线的作用是在数据永久关系连线的作用是在数据表格作表格作“更新更新”、“删除删除”、“新增新增”等动作时,对表格做一等动作时,对表格做一个检查的动作,以符合某些规则。个检查的动作,以符合某些规则。(而存储这些规则的地方就是所(而存储这些规则的地方就是所谓的谓的“参考完整性参考完整性”(RI)(RI)。)。) 在数据库中的表建立永久关在数据库中的表建立永久关系后,可以设置管理相关记录的系后,可以设置管理相关记录的规则。这些规则可以控制相关表规则。这些规则可以控制相关表中

23、记录的中记录的。 见书见书P91P91表表5.5 5.5 设置参照完整性设置参照完整性(见教科书(见教科书90-9190-91页)页)数据库表之间创建的永久关系保存数据库表之间创建的永久关系保存在(在( )中。)中。A)数据库表)数据库表 B)数据库)数据库 C)表设计器)表设计器 D)数据环境设计)数据环境设计器器命令命令SELECT 0的功能是(的功能是( )A)随机选择一个空闲工作区)随机选择一个空闲工作区B)选择区号最大的空闲工作区)选择区号最大的空闲工作区C)选择当前工作区号加)选择当前工作区号加1的工作区的工作区D)选择区号最小的空闲工作区)选择区号最小的空闲工作区 建立两个数据库

24、表的永久关系,要求建立两个数据库表的永久关系,要求( )A)两个表都必须索引)两个表都必须索引B)两个表都不要索引)两个表都不要索引C)只有父表必须索引,子表可以不需)只有父表必须索引,子表可以不需要索引要索引D)只有子表必须索引,父表可以不需)只有子表必须索引,父表可以不需要索引要索引下列叙述中,正确的是(下列叙述中,正确的是( )。)。A)一个工作区中只能打开一个表文件,打)一个工作区中只能打开一个表文件,打开新的表文件后,原来所打开的表文件自动开新的表文件后,原来所打开的表文件自动关闭关闭B)一个表文件可以在不同的工作区同时打)一个表文件可以在不同的工作区同时打开,并且表别名也相同开,并

25、且表别名也相同C)一个工作区中可以同时打开多个表文件)一个工作区中可以同时打开多个表文件D)命令)命令USE可以关闭所有工作区打开的表可以关闭所有工作区打开的表文件文件Use关闭当前工作区的数据表关闭当前工作区的数据表Clear all关闭所有工作区的数据关闭所有工作区的数据表,清除内存变量,并将当前工表,清除内存变量,并将当前工作区置为作区置为1号工作区号工作区Close all 关闭所有文件关闭所有文件 职工工资数据表按基本工资字段建立降序职工工资数据表按基本工资字段建立降序索引,然后执行索引,然后执行GO TOP命令,此时当前命令,此时当前记录指针指向的记录是(记录指针指向的记录是( )。)。A)1号记录号记录B)基本工资最少的记录)基本工资最少的记录C)基本工资最多的记录)基本工资最多的记录D)不能确定)不能确定

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(VFP第8部分(排序索引及多表操作)解析课件.ppt)为本站会员(三亚风情)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|