17. 表的关联
(1).关联的概述
所谓表文件的关联是把当前工作区中打开的表与另一个工作区中打开的表进行逻辑连接,而不生成新的表。当前工作区的表和另一工作区中的打开表建立关联后,当前工作区是表的记录指针移动时,被关联工作区的表记录指针也将自动相应移动,以实现对多个表的同时操作。
在多个表中,必须有一个表为关联表,此表常称为父表,而其他的表则称为被关联表,常称为子表。在两个表之间建立关联,必须以某一个字段为标准,该字段称为关键字段。表文件的关联可分为一对一关联、一对多关联和多对多关联。
(2).表文件关联的建立
1)一对一关联的建立
1)命令方式
【格式】SET RELATION TO [<关键字段表达式> | <数值表达式>] [INTO<别名> | <工作区号>] [ADDITIVE]
【功能】将当前工作区的表文件与<别名>(或工作区号)指定的工作区中的表文件按<关键字段表达式>或<数值表达式>建立关联。
【说明】
.... 当用<关键字段表达式>建立关联时,关键字必须是两个表文件共有字段,且别名表文件已按关键字段建立了索引文件,并已指定关键字段为主索引。
.... 当父表文件的记录指针移动时,子表文件的记录指针根据主索引文件指向关键字段值与父表文件相同的记录。如果子表中没有与关键字段值相同的记录,记录指针指向文件尾,EOF()为.T.。
.... 当按<数值表达式>建立关联时,别名表不需要打开索引文件,两个表文件按照记录号相联系,父表文件的记录指针移动时,子表文件的记录指针移至与数值表达式相等的记录上。若找不到此记录,记录指针指向文件尾,EOF()为.T.。
.... ADDITIVE:表示当前表与其他工作区表己有的关联仍有效,实现一个表和多个表之间的关联;否则取消当前表与其他工作区表已有的关联,当前表只能与一个表建立关联。
.... SET RELATION TO则表示取消当前工作区与其他工作区的关联。
【例1】 将表文件STUD.DBF和SC.DBF以学号为关键字段建立关联。
SELECT 2 && 选择工作区2
USE SC && 打开表文件SC.DBF
INDEX ON 学号 TAG 学号 && 建立学号标识
SET ORDER TO TAG 学号 && 指定学号为主索引
SELECT 1 && 选择工作区1
USE STUD && 打开表文件STUD.DBF
SET RELATION TO 学号 INTO 2 && 建立一对一关联
【例2】 将表文件STUD.DBF和SC.DBF按记录号建立关联。
SELECT 2 && 选择工作区2
USE SC && 打开表文件SC.DBF
SELECT 1 && 选择工作区1
USE STUD && 打开表文件STUR.DBF
SET RELATION TO RECNO() INTO 2
18.设置参照完整性
用来控制数据库中数据一致性的规则,也是用来控制不同表的主关键字和外部关键字之间关系的规则。
19.表的联接
包括内部联接和外部联接,其中外部联接又包括左联接、右联接和完全联接。
例 题
1.Visual FoxPro 中的参照完整性规则包括——。
A.更新规则
B.删除规则
C.插入规则
D.以上答案均正确
[解析] 本题考查的知识点是参照完整性的规则包含的内容。在VisualFoxPro 中,参照完整性规则包括更新规则、删除规则、插入规则。因此正确答案为D。
[答案] D
2. 在Visual FoxPro 中,要建次参照完整性,必须首先建立——。
[解析] 本题考查的知识点是建立参照完整性的前提。在 VisualFoxPro 中,参照完整性与表之间的联系有关,它是指:当插入、删除或修改一个表中的数据时,通过参照引用相互关联的另一个表中的数据未检查对表的数据操作是否正确。
[答案] 表之间的关系
3.执行下列命令序列后,XY3 的指针指向第____条记录,XY2 指向第——条记录。
SELECT 2 USE XY3 SELECT 3USE XY2 SELECT 2 SKIP 2
A.1,2
B.1,1
C.3,l
D.2,1
[解析] 本题考查的知识点是SELECT 命令的使用。SELECT 命令用未指定工作区,SELECT 2 即指定2 工作区。本题中因为没建立关联,因此工作区2 的指针从第l 条记录移到第3 条记录,并不会影响工作区3 的指针。
[答案] C
首页 1 2 3 4 5 6 7 8 9 10 尾页