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

上传人:29 文档编号:242760114 上传时间:2024-09-02 格式:PPT 页数:55 大小:371.64KB
返回 下载 相关 举报
VFP第8部分(排序索引及多表操作)解析课件_第1页
第1页 / 共55页
VFP第8部分(排序索引及多表操作)解析课件_第2页
第2页 / 共55页
VFP第8部分(排序索引及多表操作)解析课件_第3页
第3页 / 共55页
点击查看更多>>
资源描述
Visual Foxpro 6.0,程序设计基础,重庆工商大学计算机学院计算机基础教研室,Visual Foxpro 6.0程序设计基础重庆工商大学计,1,数据表的分类排序,命令格式,sort to on /a /d/c,产生的表是关闭的,(教科书P73),数据表的分类排序 命令格式sort to 文件名,分类排序有什么缺点,数据冗余,无法自动更新,分类排序有什么缺点数据冗余无法自动更新,数据表的索引排序,索引是按索引关键字表达式的值使数据表中的记录有序排列的一种技术,在Visual FoxPro系统中是借助于,索引文件,实现的。,1、什么是索引,索引关键字的值、记录号,(教科书P74),数据表的索引排序 索引是按索引关键字表达式的值使,Visual FoxPro系统提供了四种不同的索引类型,它们分别是:,2、索引的类型,Visual FoxPro系统提供了四种不同的索引,主索引,:,仅适用于数据库表,,不允许关键字段有重复值,,一个数据表只能建一个主索引。,候选索引,:不允许索引关键字段有重复值,普通索引,:最常用的索引类型,无任何限制,唯一索引,:允许索引关键字段有重复值,主索引:仅适用于数据库表,不允许关键字段有重复值,一个数据表,Visual FoxPro系统支持单,索引文件(.idx)和复合索,引文件(.cdx)。,3、索引文件的类型,3、索引文件的类型,(1)单索引文件(略),单索引文件是每个索引存放在一个独立的文件(.idx)中。,(2)结构化复合索引文件,结构化复合索引文件(.cdx)可以在同一个文件中包含多个索引,其中每个索引称为,索引标识,。,(1)单索引文件(略) (2)结构化复合索引文件,更重要的是,对于结构复合索引,,无论何时打开表文件,该索引都会自动打开。,其文件名与表名相同,一个表文件只产生一个结构化复合索引文件,。,(3)独立复合索引文件(略),更重要的是,对于结构复合索引,无论何时打开表文件,该,4、索引的建立,(教科书P75),Index on tag ,ascending|descending ,自动产生与表同名的.CDX文件,结构化复合索引文件的建立,(命令方式),4、索引的建立(教科书P75)Index on 索引,特别注意:,建立索引时,当涉及到两个或两个以上的不同类型的字段时:,1)顺序若相同,则将非字符型转换为字符型,然后用“+”连接成一个字符表达式。,特别注意:,2)顺序若不同,则以字符型字段的顺序为准,,若数字型字段的顺序与字符型不同,则用一个较大数减去该字段,再转化为字符型,;,若日期型字段的顺序与字符型不同,则用一个较大的日期减去该字段,再转化为字符型,,然后用“+”连接成一个字符表达式。,2)顺序若不同,则以字符型字段的顺序为准,若数字型字段的顺序,【例】 就学生表建立结构复合索引文件,其中包含2个索引:,(1)按学号的升序排列,编号相同的记录只显示第一条。,(2)先按性别升序,性别相同再按入学成绩降序排列。,USE 学生,INDEX ON 学号 TAG sy1,UNIQUE,INDEX ON 性别+STR(1000-入学成绩) TAG sy2,【例】 就学生表建立结构复合索引文件,其中包含2个索引:,在表设计器中建立索引,表设计器中的“索引”选项卡,在表设计器中建立索引表设计器中的“索引”选项卡,5、索引的使用,一个表文件可以建立多个索引,在操作中可以同时打开多个索引,但是,任何时候只有一个索引起作用,。,索引依赖于表文件而存在,,它随表的关闭而自动关闭。,5、索引的使用 一个表文件可以建立多个索引,在操作中可,当前起作用的索引标识称为主控索引,。,要使用索引必须满足以下条件:,打开表;,确定主控索引;,当前起作用的索引标识称为主控索引。,set order to tag ,(1)确定主控索引,命令格式:,(教科书P77),(2)删除索引,delete tag all | ,(3)索引更新,自动更新,set order to tag 字段名,引用非当前工作区表的字段必须冠以别名,引用格式,【例】在1号工作区打开学生表,在2号工作区打开选课表;当前工作区为1号,显示选课表中当前记录的学号、姓名、课程号和成绩字段的值。,命令序列如下:,CLOSE ALL & 关闭所有打开的文件,SELECT 1,USE 学生 & 选择1号工作区打开学生表,USE 选课 IN 2 & 在2号工作区打开选课表,当前工作区为1号,? 学号,姓名,选课.课程号,选课-成绩,【例】在1号工作区打开学生表,在2号工作区打开选课表;当前工,学生管理数据库中的表,学生管理数据库中的表,bof(),:文件开始的测试函数,eof(),:文件结束的测试函数,recno(),:返回当前记录号,sele(),:返回当前工作区区号,4、工作区常用函数,bof():文件开始的测试函数4、工作区常用函数,建立表间的关联关系(临时关系),要在两个或两个以上的表之间进行数据操作时,通常有,关联和连接,两种方法。,建立表间的关联关系(临时关系) 要在两个或两个以,1、关联的概念,每个工作区打开的表中都存在一个记录指针,指针指向的记录是当前记录,如果表之间没有关系,则各个表的记录指针,相互独立,,即当前工作区指针移动时,其他工作区的指针不移动。,所谓关联,就是让不同工作区数据表的记录指针建立一种临时的联动关系。使一个表的记录指针移动时,能带动另一个表的记录指针按一定的条件作相应地移动。,前者称为关联表(主动表、父表),后者称为被关联表(被动表、子表),1、关联的概念所谓关联,就是让不同工作区数据表的记录指针建立,关键字为唯一值 关键字为唯一值,一,一,关键字为重复值 关键字为唯一值,多,一,关键字为唯一值 关键字为重复值,一,多,关键字为重复值 关键字为重复值,多,多,父表,子表,主动,被动,关键字为唯一值 关键字为唯一值 一一关键,建立表间的关联,建立数据库文件中表间关联,,一是要保证建立关系的表具有相同的,字段值(关键字值),;,二是子表要以该字段建立,索引,。,建立表间的关联,建立两个表之间的“,一对一,”和“,多对一,”关联的步骤:,找到两个表中能够建立关联的字段(,字段名可以不同,类型、宽度、小数位数必须相同,),根据关键字值确定父表,再确定子表;,先打开子表,建立索引;,最后打开父表建立关联。,有重复值为父表,建立两个表之间的“一对一”和“多对一”关联的步骤:有,set rela to into , into additive,说明:,发出关联命令所在工作区的表是父表,建立关联的命令,(教科书P83),set rela to in,子表必须对关联字段索引,是关联的关键字,不同名的字段只要类型和数值相同也可建立关联,。,关联后,父表指针移动带动子表指针移动;而,如果当前工作区是子表,其指针移动,父表指针不会移动,。,实验指导书P35 实验15任务1(1),子表必须对关联字段索引实验指导书P35 实验15任务1(1,additive 一般用于三个或三个以上的表之间建立多重关联,第2、3个关联使用该选项。,关联后,当前工作区字段名可以直接使用,子表的字段在使用时要加“,别名.字段名,”,。,set rela to recn()+N into ,把记录号作关键字建立关联,。,关闭或重新打开数据表,关联就会消失。(故称为,临时关系,),additive 一般用于三个或三个以上的表之间建立多,BB AA,Sele 1,Use AA,inde on 字段 tag zd,Sele 2,Use BB,Set rela to 字段 into A(或 AA或1),字段,BB AASele,Sele 0,Use AA,inde on 字段 tag zd,Sele 0,Use BB,Set rela to 字段 into AA,Sele 0,AA BB CC,或,AA BB,AA CC,字段1,字段2,字段1,3个表建关联?,字段2,(见教科书第84页例4.22),AA BB,set skip to , ,一般不用,用在set relation命令之后,说明已建关联的性质为一多关系。,建立表间的一对多关系,set skip to , 别,原则:,一般建立“多对一”或“一对一”的关联;,一般如果要求显示的结果是按照某个字段值的顺序排列,则包含该字段的表应作父表。,原则:,例: 在学生表和选课表中,显示成绩80分的学生的学号、姓名、所学课程的课程号和成绩。,例: 在学生表和选课表中,显示成绩80分的学生的学号、姓名,学生管理数据库中的表,学生管理数据库中的表,set safety off,close all,clear,select 1,use 学生,alias xs,index on 学号 tag xh,select 2,use 选课,set relation to 学号 into xs,系统环境设置,表环境设置,set safety off系统环境设置表环境设置,list for 成绩80fields 学号,xs.姓名,课程号, 成绩,close all,set safety on,cancel,数据处理,恢复系统环境,list for 成绩80fields 学号,xs.姓名,主索引与永久关系,有些数据表格和其他数据表格之间存在着某些,关系,,我们需要将这些有关系的数据表格纳入同一个数据库中,并建立其彼此之间的关系,使用者才能更好的运用数据表格,更容易达到数据管理的目的。,主索引与永久关系 有些数据表格和其他数,1)主索引的建立,注意:只能为,数据库表,建立主索引,不能为自由表创建主索引。,当从数据库中移走有主索引的表而成为自由表时,他们的主关键字将会随之消失。,1)主索引的建立注意:只能为数据库表建立主索引,不能为自由表,2)永久关系和临时关系,永久性关系建立在数据库本身,只要数据库存在,永久关系就存在,不会因其他命令的执行而消失,。,2)永久关系和临时关系 永久性关系建立在数据库本身,只,在“数据库设计器”窗口中,两个数据表格之间的连线,就是,“永久性关系”,。,(见教科书90页图5.3),字段之间的关系(不管是永久性的还是临时性的),都是要靠,索引,来达成的,也就是说,某个字段欲建立关系,需先以此字段的内容建立索引,再利用此索引建立关系。,在“数据库设计器”窗口中,两个数据表格之间的连线,就,表之间的关系,表之间的关系,注意:建立“永久性关系”的,父表,必须以关键字建立,主索引或侯选索引,,而子表则可以以关键字建立任意类型的索引(一对一或一对多)。,而建立“临时关系”的父表可以不需建立索引,只需子表以关键字建立任意类型的索引即可(一对一或多对一) 。,注意:建立“永久性关系”的父表必须以关键字建立主索引或侯选索,永久关系连线的作用是在数据表格作“更新”、“删除”、“新增”等动作时,对表格做一个检查的动作,以符合某些规则。,(而存储这些规则的地方就是所谓的“参考完整性”(RI)。),永久关系连线的作用是在数据表格作“更新”、“删除”,在数据库中的表建立永久关系后,可以设置管理相关记录的规则。这些规则可以控制相关表中记录的,插入、删除或更新,操作,。,见书P91表5.5,设置参照完整性,(见教科书90-91页),在数据库中的表建立永久关系后,可以设置管理相关记,数据库表之间创建的永久关系保存在( )中。,A)数据库表 B)数据库,C)表设计器 D)数据环境设计器,命令SELECT 0的功能是( ),A)随机选择一个空闲工作区,B)选择区号最大的空闲工作区,C)选择当前工作区号加1的工作区,D)选择区号最小的空闲工作区,建立两个数据库表的永久关系,要求( ),A)两个表都必须索引,B)两个表都不要索引,C)只有父表必须索引,子表可以不需要索引,D)只有子表必须索引,父表可以不需要索引,下列叙述中,正确的是( )。,A)一个工作区中只能打开一个表文件,打开新的表文件后,原来所打开的表文件自动关闭,B)一个表文件可以在不同的工作区同时打开,并且表别名也相同,C)一个工作区中可以同时打开多个表文件,D)命令USE可以关闭所有工作区打开的表文件,Use关闭当前工作区的数据表,Clear all关闭所有工作区的数据表,清除内存变量,并将当前工作区置为1号工作区,Close all 关闭所有文件,职工工资数据表按基本工资字段建立降序索引,然后执行GO TOP命令,此时当前记录指针指向的记录是( )。,A)1号记录,B)基本工资最少的记录,C)基本工资最多的记录,D)不能确定,数据库表之间创建的永久关系保存在( )中。命令SELE,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > PPT模板库


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!