VFP第9部分(排序索引及多表操作)详解课件_第1页
VFP第9部分(排序索引及多表操作)详解课件_第2页
VFP第9部分(排序索引及多表操作)详解课件_第3页
VFP第9部分(排序索引及多表操作)详解课件_第4页
VFP第9部分(排序索引及多表操作)详解课件_第5页
已阅读5页,还剩105页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

VisualFoxpro6.0程序设计基础重庆工商大学计算机学院计算机基础教研室VisualFoxpro6.0程序设计基础重庆工商大学计1数据表的分类排序

命令格式sortto<文件名>on<字段1>[/a][/d][/c]……产生的表是关闭的(教科书P73)数据表的分类排序命令格式sortto<文件名分类排序有什么缺点数据冗余无法自动更新分类排序有什么缺点数据冗余无法自动更新数据表的索引排序

索引是按索引关键字表达式的值使数据表中的记录有序排列的一种技术,在VisualFoxPro系统中是借助于索引文件实现的。1、什么是索引索引关键字的值、记录号(教科书P74)数据表的索引排序索引是按索引关键字表达式的值使数VisualFoxPro系统提供了四种不同的索引类型,它们分别是:2、索引的类型VisualFoxPro系统提供了四种不同的索引主索引:仅适用于数据库表,不允许关键字段有重复值,一个数据表只能建一个主索引。候选索引:不允许索引关键字段有重复值普通索引:最常用的索引类型,无任何限制唯一索引:允许索引关键字段有重复值

主索引:仅适用于数据库表,不允许关键字段有重复值,一个数据表VisualFoxPro系统支持单索引文件(.idx)和复合索引文件(.cdx)。3、索引文件的类型3、索引文件的类型(1)单索引文件(略)

单索引文件是每个索引存放在一个独立的文件(.idx)中。(2)结构化复合索引文件

结构化复合索引文件(.cdx)可以在同一个文件中包含多个索引,其中每个索引称为索引标识。

(1)单索引文件(略)(2)结构化复合索引文件更重要的是,对于结构复合索引,无论何时打开表文件,该索引都会自动打开。

其文件名与表名相同,一个表文件只产生一个结构化复合索引文件。(3)独立复合索引文件(略)更重要的是,对于结构复合索引,无论何时打开表文件,该4、索引的建立(教科书P75)Indexon<索引关键字表达式>tag<索引标识名>[ascending|descending]……自动产生与表同名的.CDX文件结构化复合索引文件的建立(命令方式)4、索引的建立(教科书P75)Indexon<索引特别注意:

建立索引时,当<索引关键字表达式>涉及到两个或两个以上的不同类型的字段时:1)顺序若相同,则将非字符型转换为字符型,然后用“+”连接成一个字符表达式。特别注意:2)顺序若不同,则以字符型字段的顺序为准,若数字型字段的顺序与字符型不同,则用一个较大数减去该字段,再转化为字符型;若日期型字段的顺序与字符型不同,则用一个较大的日期减去该字段,再转化为字符型,然后用“+”连接成一个字符表达式。2)顺序若不同,则以字符型字段的顺序为准,若数字型字段的顺序【例】就学生表建立结构复合索引文件,其中包含2个索引:(1)按学号的升序排列,编号相同的记录只显示第一条。(2)先按性别升序,性别相同再按入学成绩降序排列。

USE学生INDEXON学号TAGsy1UNIQUEINDEXON性别+STR(1000-入学成绩)TAGsy2【例】就学生表建立结构复合索引文件,其中包含2个索引:在表设计器中建立索引表设计器中的“索引”选项卡在表设计器中建立索引表设计器中的“索引”选项卡5、索引的使用一个表文件可以建立多个索引,在操作中可以同时打开多个索引,但是任何时候只有一个索引起作用。

索引依赖于表文件而存在,它随表的关闭而自动关闭。5、索引的使用一个表文件可以建立多个索引,在操作中可

当前起作用的索引标识称为主控索引。

要使用索引必须满足以下条件:

打开表;确定主控索引;

当前起作用的索引标识称为主控索引。

setorderto[[tag]<索引标识名>](1)确定主控索引命令格式:(教科书P77)(2)删除索引deletetagall|<索引标识1>……(3)索引更新自动更新setorderto[[tag]<索引标识使用索引文件后,虽然表中各记录的物理顺序并未改变。但记录指针不再按物理顺序移动,而是按主控索引文件中记录的逻辑顺序移动,于是整个表中的记录是按索引关键表达式值排序的效果。使用索引文件时,还要特别注意以下几点:

(1)在使用GO命令时,GO<数值表达式>使记录指针指向具体的物理记录号,而与索引无关,而GOTOP|BOTTOM将使记录指针指向逻辑首或逻辑尾记录,这时GOTOP不再等同于GO1。(2)SKIP命令按逻辑顺序移动记录指针。(3)表被打开后,记录指针位于TOP位置。使用索引文件后,虽然表中各记录的物理顺序并未改变【例】当索引起作用时,分析记录指针的移动规律。

USE学生INDEXON入学成绩TAGsy3GO6?RECNO(),姓名&&显示6李勤奋SKIP?RECNO(),姓名&&显示5欧阳天地【例】当索引起作用时,分析记录指针的移动规律。复合结构索引文件的类型名称是()A)PJT B)PRG C)CDX D)MEM不允许字段值出现重复的索引是()。

A)侯选索引和主索引

B)普通索引和惟一索引C)惟一索引和主索引

D)惟一索引自由表gz.dbf有姓名/C/8、出生年月/D、基本工资/N/6/2等字段,要建立以“姓名、基本工资”两字段的组合索引,其索引关键字表达式是()。姓名+基本工资(B)“姓名”+“基本工资”(C)“姓名”+基本工资(D)姓名+str(基本工资,6,2)有数据表文件CJ.DBF,按姓名(C,8)的升序,上机成绩(N,6,2)的降序建立索引,正确的命令是()。A.INDEXON姓名-上机成绩TAGCJIDXB.INDEXON姓名+STR(-上机成绩,6,2)TAGCJIDXC.INDEXON姓名+STR(1000-上机成绩)TAGCJIDXD.INDEXON姓名/A,上机成绩/DTAGCJIDX某数据表有字段:学号/C、生日/D、成绩/N等。要建立学号、成绩、生日的组合索引,其索引关键字表达式是()。A)学号+成绩+生日B)"学号"+"成绩"+"生日"C)学号+STR(成绩,5,1)+STR(生日,8)D)学号+STR(成绩,5,1)+DTOC(生日,1)复合结构索引文件的类型名称是()不允许字段值出现重多表操作

若要使用多个表,就要使用多个工作区。一个工作区是一个编号区域,它标识一个已打开的表。在应用程序中通常通过使用工作区号和工作区别名来标识。

(教科书P82)多表操作若要使用多个表,就要使用多个工作区。一个工1、工作区号

VisualfoxPro提供了32767个工作区,编号从1到32767。

每个工作区只允许打开一个表,一个表只能在一个工作区打开,系统默认的工作区为1号工作区。

1、工作区号2、别名(1)前十个工作区除了可用1~10来标识外,还可用A~J来表示工作区的别名。(2)定义别名use<文件名>alias<别名>格式:2、别名use<文件名>alias<别名>格式:3、选择当前工作区select<工作区号>|<别名>如没有给表定义别名,则可以用数据表名作为别名。

sele0表示选定当前未使用的最小号工作区。use<表名>in<工作区号>|<别名>不改变当前工作区3、选择当前工作区select<工作区号>|<别名>如【例】在不同的工作区分别打开学生.dbf、选课.dbf和课程.dbf3个表,命令序列如下:CLOSEALL&&关闭所有打开的文件SELECT2USE学生&&选择2号工作区打开学生表SELECTCUSE课程&&选择3号工作区打开课程表USE选课IN5&&在5号工作区打开选课表【例】在不同的工作区分别打开学生.dbf、选课.dbf和课引用非当前工作区表的字段必须冠以别名,引用格式为:

别名.字段名别名->字段名引用非当前工作区表的字段必须冠以别名,引用格式【例】在1号工作区打开学生表,在2号工作区打开选课表;当前工作区为1号,显示选课表中当前记录的学号、姓名、课程号和成绩字段的值。命令序列如下:(演示,并移动指针)CLOSEALL&&关闭所有打开的文件SELECT1USE学生&&选择1号工作区打开学生表USE选课IN2&&在2号工作区打开选课表,当前工作区为1号?学号,姓名,选课.课程号,选课->成绩【例】在1号工作区打开学生表,在2号工作区打开选课表;当前工学生管理数据库中的表学生管理数据库中的表

bof(<工作区>):文件开始的测试函数

eof(<工作区>):文件结束的测试函数

recno(<工作区>):返回当前记录号

sele():返回当前工作区区号4、工作区常用函数bof(<工作区>):文件开始的测试函数4、工作区常用函数建立表间的关联关系

(临时关系)

要在两个或两个以上的表之间进行数据操作时,通常有关联和连接两种方法。建立表间的关联关系

(临时关系)要在两个或两个以1、关联的概念每个工作区打开的表中都存在一个记录指针,指针指向的记录是当前记录,如果表之间没有关系,则各个表的记录指针相互独立,即当前工作区指针移动时,其他工作区的指针不移动。所谓关联,就是让不同工作区数据表的记录指针建立一种临时的联动关系。使一个表的记录指针移动时,能带动另一个表的记录指针按一定的条件作相应地移动。前者称为关联表(主动表、父表),后者称为被关联表(被动表、子表)1、关联的概念所谓关联,就是让不同工作区数据表的记录指针建立关键字为唯一值关键字为唯一值一一关键字为重复值关键字为唯一值多一关键字为唯一值关键字为重复值一多关键字为重复值关键字为重复值多多父表子表主动被动关键字为唯一值关键字为唯一值一一关键建立表间的关联建立数据库文件中表间关联,一是要保证建立关系的表具有相同的字段值(关键字值);二是子表要以该字段建立索引。建立表间的关联建立两个表之间的“一对一”和“多对一”关联的步骤:①找到两个表中能够建立关联的字段(字段名可以不同,类型、宽度、小数位数必须相同)②根据关键字值确定父表,再确定子表;③先打开子表,建立索引;④最后打开父表建立关联。有重复值为父表建立两个表之间的“一对一”和“多对一”关联的步骤:有setrelato[<表达式1>into<别名1>,…,<表达式N>into<别名N>][additive]说明:①发出关联命令所在工作区的表是父表建立关联的命令(教科书P83)setrelato[<表达式1>into②子表必须对关联字段索引③<表达式>是关联的关键字

不同名的字段只要类型和数值相同也可建立关联。④关联后,父表指针移动带动子表指针移动;而如果当前工作区是子表,其指针移动,父表指针不会移动。实验指导书P35实验15任务1(1)②子表必须对关联字段索引实验指导书P35实验15任务1(1⑤[additive]一般用于三个或三个以上的表之间建立多重关联,第2、3…个关联使用该选项。⑥关联后,当前工作区字段名可以直接使用,子表的字段在使用时要加“别名.字段名”。⑦setrelatorecn()+Ninto<别名>把记录号作关键字建立关联。⑧关闭或重新打开数据表,关联就会消失。(故称为临时关系)⑤[additive]一般用于三个或三个以上的表之间建立多BBAASele1UseAAindeon字段tagzdSele2UseBBSetrelato字段intoA(或AA)字段BBAASelesele0useAAindexon字段tagzdsele0useBBsetrelationto字段intoAAsele0AABBCC或BBAACC字段1字段2字段13个表建关联?字段2(见实验书第16页任务1)AABBsetskipto[<别名1>[,<别名2>]…]一般不用用在setrelation命令之后,说明已建关联的性质为一对多关系。建立表间的一对多关系setskipto[<别名1>[,<别名2>]原则:

一般建立“多对一”或“一对一”的关联;一般如果要求显示的结果是按照某个字段值的顺序排列,则包含该字段的表应作父表。原则:例:在学生表和选课表中,显示成绩<80分的学生的学号、姓名、所学课程的课程号和成绩。例:在学生表和选课表中,显示成绩<80分的学生的学号、姓名学生管理数据库中的表学生管理数据库中的表setsafetyoffcloseallclearselect1use学生aliasxsindexon学号tagxhselect2use选课setrelationto学号intoxs系统环境设置表环境设置setsafetyoff系统环境设置表环境设置listfor成绩<80fields学号,xs.姓名,课程号,成绩closeallsetsafetyoncancel数据处理恢复系统环境listfor成绩<80fields学号,xs.姓名主索引与永久关系

有些数据表格和其他数据表格之间存在着某些关系,我们需要将这些有关系的数据表格纳入同一个数据库中,并建立其彼此之间的关系,使用者才能更好的运用数据表格,更容易达到数据管理的目的。主索引与永久关系有些数据表格和其他数1)主索引的建立

注意:只能为数据库表建立主索引,不能为自由表创建主索引。当从数据库中移走有主索引的表而成为自由表时,他们的主关键字将会随之消失。1)主索引的建立注意:只能为数据库表建立主索引,不能为自由表2)永久关系和临时关系

永久性关系建立在数据库本身,只要数据库存在,永久关系就存在,不会因其他命令的执行而消失。2)永久关系和临时关系永久性关系建立在数据库本身,只在“数据库设计器”窗口中,两个数据表格之间的连线,就是“永久性关系”。

(见教科书90页图5.3)

字段之间的关系(不管是永久性的还是临时性的),都是要靠索引来达成的,也就是说,某个字段欲建立关系,需先以此字段的内容建立索引,再利用此索引建立关系。

在“数据库设计器”窗口中,两个数据表格之间的连线,就表之间的关系表之间的关系注意:建立“永久性关系”的父表必须以关键字建立主索引或侯选索引,而子表则可以以关键字建立任意类型的索引(一对一或一对多)。 而建立“临时关系”的父表可以不需建立索引,只需子表以关键字建立任意类型的索引即可(一对一或多对一)。注意:建立“永久性关系”的父表必须以关键字建立主索引或侯选索永久关系连线的作用是在数据表格作“更新”、“删除”、“新增”等动作时,对表格做一个检查的动作,以符合某些规则。(而存储这些规则的地方就是所谓的“参考完整性”(RI)。)永久关系连线的作用是在数据表格作“更新”、“删除”

在数据库中的表建立永久关系后,可以设置管理相关记录的规则。这些规则可以控制相关表中记录的插入、删除或更新操作。见书P91表5.5

设置参照完整性(见教科书90-91页)在数据库中的表建立永久关系后,可以设置管理相关记录数据库表之间创建的永久关系保存在()中。A)数据库表B)数据库C)表设计器D)数据环境设计器命令SELECT0的功能是()A)随机选择一个空闲工作区 B)选择区号最大的空闲工作区C)选择当前工作区号加1的工作区 D)选择区号最小的空闲工作区建立两个数据库表的永久关系,要求()A)两个表都必须索引 B)两个表都不要索引C)只有父表必须索引,子表可以不需要索引D)只有子表必须索引,父表可以不需要索引下列叙述中,正确的是()。A)一个工作区中只能打开一个表文件,打开新的表文件后,原来所打开的表文件自动关闭B)一个表文件可以在不同的工作区同时打开,并且表别名也相同C)一个工作区中可以同时打开多个表文件D)命令USE可以关闭所有工作区打开的表文件Use关闭当前工作区的数据表Clearall关闭所有工作区的数据表,清除内存变量,并将当前工作区置为1号工作区Closeall关闭所有文件职工工资数据表按基本工资字段建立降序索引,然后执行GOTOP命令,此时当前记录指针指向的记录是()。A)1号记录 B)基本工资最少的记录C)基本工资最多的记录 D)不能确定下次课课前用于复习回顾如果在表之间的联系中设置了参照完整性规则,并在删除规则中选择了“限制”,则当删除父表中的记录时,系统将如何处理?()(A)不做参照完整性检查(B)不准删除父表中的记录(C)自动删除子表中所有相关的记录(D)若子表中有相关记录,则禁止删除父表中记录数据库表之间创建的永久关系保存在()中。命令SELEVisualFoxpro6.0程序设计基础重庆工商大学计算机学院计算机基础教研室VisualFoxpro6.0程序设计基础重庆工商大学计56数据表的分类排序

命令格式sortto<文件名>on<字段1>[/a][/d][/c]……产生的表是关闭的(教科书P73)数据表的分类排序命令格式sortto<文件名分类排序有什么缺点数据冗余无法自动更新分类排序有什么缺点数据冗余无法自动更新数据表的索引排序

索引是按索引关键字表达式的值使数据表中的记录有序排列的一种技术,在VisualFoxPro系统中是借助于索引文件实现的。1、什么是索引索引关键字的值、记录号(教科书P74)数据表的索引排序索引是按索引关键字表达式的值使数VisualFoxPro系统提供了四种不同的索引类型,它们分别是:2、索引的类型VisualFoxPro系统提供了四种不同的索引主索引:仅适用于数据库表,不允许关键字段有重复值,一个数据表只能建一个主索引。候选索引:不允许索引关键字段有重复值普通索引:最常用的索引类型,无任何限制唯一索引:允许索引关键字段有重复值

主索引:仅适用于数据库表,不允许关键字段有重复值,一个数据表VisualFoxPro系统支持单索引文件(.idx)和复合索引文件(.cdx)。3、索引文件的类型3、索引文件的类型(1)单索引文件(略)

单索引文件是每个索引存放在一个独立的文件(.idx)中。(2)结构化复合索引文件

结构化复合索引文件(.cdx)可以在同一个文件中包含多个索引,其中每个索引称为索引标识。

(1)单索引文件(略)(2)结构化复合索引文件更重要的是,对于结构复合索引,无论何时打开表文件,该索引都会自动打开。

其文件名与表名相同,一个表文件只产生一个结构化复合索引文件。(3)独立复合索引文件(略)更重要的是,对于结构复合索引,无论何时打开表文件,该4、索引的建立(教科书P75)Indexon<索引关键字表达式>tag<索引标识名>[ascending|descending]……自动产生与表同名的.CDX文件结构化复合索引文件的建立(命令方式)4、索引的建立(教科书P75)Indexon<索引特别注意:

建立索引时,当<索引关键字表达式>涉及到两个或两个以上的不同类型的字段时:1)顺序若相同,则将非字符型转换为字符型,然后用“+”连接成一个字符表达式。特别注意:2)顺序若不同,则以字符型字段的顺序为准,若数字型字段的顺序与字符型不同,则用一个较大数减去该字段,再转化为字符型;若日期型字段的顺序与字符型不同,则用一个较大的日期减去该字段,再转化为字符型,然后用“+”连接成一个字符表达式。2)顺序若不同,则以字符型字段的顺序为准,若数字型字段的顺序【例】就学生表建立结构复合索引文件,其中包含2个索引:(1)按学号的升序排列,编号相同的记录只显示第一条。(2)先按性别升序,性别相同再按入学成绩降序排列。

USE学生INDEXON学号TAGsy1UNIQUEINDEXON性别+STR(1000-入学成绩)TAGsy2【例】就学生表建立结构复合索引文件,其中包含2个索引:在表设计器中建立索引表设计器中的“索引”选项卡在表设计器中建立索引表设计器中的“索引”选项卡5、索引的使用一个表文件可以建立多个索引,在操作中可以同时打开多个索引,但是任何时候只有一个索引起作用。

索引依赖于表文件而存在,它随表的关闭而自动关闭。5、索引的使用一个表文件可以建立多个索引,在操作中可

当前起作用的索引标识称为主控索引。

要使用索引必须满足以下条件:

打开表;确定主控索引;

当前起作用的索引标识称为主控索引。

setorderto[[tag]<索引标识名>](1)确定主控索引命令格式:(教科书P77)(2)删除索引deletetagall|<索引标识1>……(3)索引更新自动更新setorderto[[tag]<索引标识使用索引文件后,虽然表中各记录的物理顺序并未改变。但记录指针不再按物理顺序移动,而是按主控索引文件中记录的逻辑顺序移动,于是整个表中的记录是按索引关键表达式值排序的效果。使用索引文件时,还要特别注意以下几点:

(1)在使用GO命令时,GO<数值表达式>使记录指针指向具体的物理记录号,而与索引无关,而GOTOP|BOTTOM将使记录指针指向逻辑首或逻辑尾记录,这时GOTOP不再等同于GO1。(2)SKIP命令按逻辑顺序移动记录指针。(3)表被打开后,记录指针位于TOP位置。使用索引文件后,虽然表中各记录的物理顺序并未改变【例】当索引起作用时,分析记录指针的移动规律。

USE学生INDEXON入学成绩TAGsy3GO6?RECNO(),姓名&&显示6李勤奋SKIP?RECNO(),姓名&&显示5欧阳天地【例】当索引起作用时,分析记录指针的移动规律。复合结构索引文件的类型名称是()A)PJT B)PRG C)CDX D)MEM不允许字段值出现重复的索引是()。

A)侯选索引和主索引

B)普通索引和惟一索引C)惟一索引和主索引

D)惟一索引自由表gz.dbf有姓名/C/8、出生年月/D、基本工资/N/6/2等字段,要建立以“姓名、基本工资”两字段的组合索引,其索引关键字表达式是()。姓名+基本工资(B)“姓名”+“基本工资”(C)“姓名”+基本工资(D)姓名+str(基本工资,6,2)有数据表文件CJ.DBF,按姓名(C,8)的升序,上机成绩(N,6,2)的降序建立索引,正确的命令是()。A.INDEXON姓名-上机成绩TAGCJIDXB.INDEXON姓名+STR(-上机成绩,6,2)TAGCJIDXC.INDEXON姓名+STR(1000-上机成绩)TAGCJIDXD.INDEXON姓名/A,上机成绩/DTAGCJIDX某数据表有字段:学号/C、生日/D、成绩/N等。要建立学号、成绩、生日的组合索引,其索引关键字表达式是()。A)学号+成绩+生日B)"学号"+"成绩"+"生日"C)学号+STR(成绩,5,1)+STR(生日,8)D)学号+STR(成绩,5,1)+DTOC(生日,1)复合结构索引文件的类型名称是()不允许字段值出现重多表操作

若要使用多个表,就要使用多个工作区。一个工作区是一个编号区域,它标识一个已打开的表。在应用程序中通常通过使用工作区号和工作区别名来标识。

(教科书P82)多表操作若要使用多个表,就要使用多个工作区。一个工1、工作区号

VisualfoxPro提供了32767个工作区,编号从1到32767。

每个工作区只允许打开一个表,一个表只能在一个工作区打开,系统默认的工作区为1号工作区。

1、工作区号2、别名(1)前十个工作区除了可用1~10来标识外,还可用A~J来表示工作区的别名。(2)定义别名use<文件名>alias<别名>格式:2、别名use<文件名>alias<别名>格式:3、选择当前工作区select<工作区号>|<别名>如没有给表定义别名,则可以用数据表名作为别名。

sele0表示选定当前未使用的最小号工作区。use<表名>in<工作区号>|<别名>不改变当前工作区3、选择当前工作区select<工作区号>|<别名>如【例】在不同的工作区分别打开学生.dbf、选课.dbf和课程.dbf3个表,命令序列如下:CLOSEALL&&关闭所有打开的文件SELECT2USE学生&&选择2号工作区打开学生表SELECTCUSE课程&&选择3号工作区打开课程表USE选课IN5&&在5号工作区打开选课表【例】在不同的工作区分别打开学生.dbf、选课.dbf和课引用非当前工作区表的字段必须冠以别名,引用格式为:

别名.字段名别名->字段名引用非当前工作区表的字段必须冠以别名,引用格式【例】在1号工作区打开学生表,在2号工作区打开选课表;当前工作区为1号,显示选课表中当前记录的学号、姓名、课程号和成绩字段的值。命令序列如下:(演示,并移动指针)CLOSEALL&&关闭所有打开的文件SELECT1USE学生&&选择1号工作区打开学生表USE选课IN2&&在2号工作区打开选课表,当前工作区为1号?学号,姓名,选课.课程号,选课->成绩【例】在1号工作区打开学生表,在2号工作区打开选课表;当前工学生管理数据库中的表学生管理数据库中的表

bof(<工作区>):文件开始的测试函数

eof(<工作区>):文件结束的测试函数

recno(<工作区>):返回当前记录号

sele():返回当前工作区区号4、工作区常用函数bof(<工作区>):文件开始的测试函数4、工作区常用函数建立表间的关联关系

(临时关系)

要在两个或两个以上的表之间进行数据操作时,通常有关联和连接两种方法。建立表间的关联关系

(临时关系)要在两个或两个以1、关联的概念每个工作区打开的表中都存在一个记录指针,指针指向的记录是当前记录,如果表之间没有关系,则各个表的记录指针相互独立,即当前工作区指针移动时,其他工作区的指针不移动。所谓关联,就是让不同工作区数据表的记录指针建立一种临时的联动关系。使一个表的记录指针移动时,能带动另一个表的记录指针按一定的条件作相应地移动。前者称为关联表(主动表、父表),后者称为被关联表(被动表、子表)1、关联的概念所谓关联,就是让不同工作区数据表的记录指针建立关键字为唯一值关键字为唯一值一一关键字为重复值关键字为唯一值多一关键字为唯一值关键字为重复值一多关键字为重复值关键字为重复值多多父表子表主动被动关键字为唯一值关键字为唯一值一一关键建立表间的关联建立数据库文件中表间关联,一是要保证建立关系的表具有相同的字段值(关键字值);二是子表要以该字段建立索引。建立表间的关联建立两个表之间的“一对一”和“多对一”关联的步骤:①找到两个表中能够建立关联的字段(字段名可以不同,类型、宽度、小数位数必须相同)②根据关键字值确定父表,再确定子表;③先打开子表,建立索引;④最后打开父表建立关联。有重复值为父表建立两个表之间的“一对一”和“多对一”关联的步骤:有setrelato[<表达式1>into<别名1>,…,<表达式N>into<别名N>][additive]说明:①发出关联命令所在工作区的表是父表建立关联的命令(教科书P83)setrelato[<表达式1>into②子表必须对关联字段索引③<表达式>是关联的关键字

不同名的字段只要类型和数值相同也可建立关联。④关联后,父表指针移动带动子表指针移动;而如果当前工作区是子表,其指针移动,父表指针不会移动。实验指导书P35实验15任务1(1)②子表必须对关联字段索引实验指导书P35实验15任务1(1⑤[additive]一般用于三个或三个以上的表之间建立多重关联,第2、3…个关联使用该选项。⑥关联后,当前工作区字段名可以直接使用,子表的字段在使用时要加“别名.字段名”。⑦setrelatorecn()+Ninto<别名>把记录号作关键字建立关联。⑧关闭或重新打开数据表,关联就会消失。(故称为临时关系)⑤[additive]一般用于三个或三个以上的表之间建立多BBAASele1UseAAindeon字段tagzdSele2UseBBSetrelato字段intoA(或AA)字段BBAASelesele0useAAindexon字段tagzdsele0useBBsetrelationto字段intoAAsele0AABBCC或BBAACC字段1字段2字段13个表建关联?字段2(见实验书第16页任务1)AABBsetskipto[<别名1>[,<别名2>]…]一般不用用在setrelation命令之后,说明已建关联的性质为一对多关系。建立表间的一对多关系setskipto[<别名1>[,<别名2>]原则:

一般建立“多对一”或“一对一”的关联;一般如果要求显示的结果是按照某个字段值的顺序排列,则包含该字段的表应作父表。原则:例:在学生表和选课表中,显示成绩<80分的学生的学号、姓名、所学课程的课程号和成绩。例:在学生表和选课表中,显示成绩<80分的学生的学号、姓名学生管理数据库中的表学生管理数据库中的表setsafetyoffcloseallclearselect1use学生aliasxsindexon学号tagxhselect2use选课setrelationto学号intoxs系统环境设置表环境设置setsafetyoff系统环境设置表环境设置listfor成绩<80fields学号,xs.姓名,课程号,成绩closeallsetsafetyoncancel数据处理恢复系统环境listfor成绩<80fields学号,xs.姓名主索引与永久关系

有些数据表格和其他数据表格之间存在着

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论