|
||||
数据库管理系统 (十三)蒋泽军 |
|
数据库的关系操作(二) (5)用于关联的命令 命令的基本格式为: SET RELATION TO [〈表达式> INTO <别名> [ADDITIVE]] 该命令的功能是通过一个表达式链接两个打开的数据库,链接表达式是这 两个库文件共有的。被链接的数据库,一个是当前工作区中的数据库,另一个 是在其它工作区中打开的数据库,用<别名>指定。 其中<表达式>包括: ①<关键表达式>:使用<关键表达式>时,该表达式必须包含在当前数 据库文件中,并且,被链接的数据库文件必须是按<关键表达式>索引的。每 当当前数据库中的指针移向某个记录,被链接的数据库将指到与当前数据库文 件关键表达式相匹配的第一个记录。如果被链接的数据库文件不是已建立索引 的,执行SET RELATION TO〈关键表达式>命令将出错。 ②<数值表达式>:使用<数值表达式>时,当前数据库的记录所对应的 表达式的值若等于被链接数据库的某个记录所对应的表达式的值,则相应记录 被链接起来。被链接的数据库不能是已建立了索引的数据库。 ③RECNO():RECNO()是FoxBASE+提供的一个函数 ,它返回当前工作区中当前记录的记录号,在这里表示根据当前工作区文件的 记录号进行链接。被链接的数据库不能打开索引文件。 可选项ADDITIVE的作用是:保留以前设置的链接关系,若缺省则 取消以前设置的所有链接关系。 若执行设有可选项的SET RELATION TO命令,则取消当前 工作区中的链接关系。 在工作区之间建立联系之后,我们称执行SET RELATION命令 的当前工作区中的数据库文件为主动数据库,称〈别名〉工作区中的数据库文 件为被链接数据库。当主动数据库的记录指针发生移动时,被链接数据库的记 录指针也会随之产生相应的移动。 FoxBASE+提供了十个工作区,每个工作区都可以作为当前工作区 与其它工作区建立联系,但在同一时刻,当前工作区只能对<别名>所指定的 工作区构造一个联系。若使用了ADDITIVE可选项,可以使当前工作区 中的数据库文件同时对不同工作区中的数据库文件构造不同的联系。 例1:查找选修C1001课程的学生的姓名。 ·SELECT B &&选择工作区B为当前工作区 ·USE S.DBF &&打开S.DBF文件 ·INDEX ON学号TO S.IDX &&对学号域建立索引 ·SELECTA &&选择工作区A为当前工作区 ·USE SC.DBF &&打开SC.DBF文件 ·SET RELATION TO 学号 INTOS &&按学号域建 立关联 ·LOCATE ALL FOR 课程号=C1001 &&查找选修 C1001课程的记录 ·SELECT B &&选择工作区B为当前工作区 ·DISPLAY &&显示当前记录内容 Record# 学号 姓名 专业 1 S8081 沈进辉 计算机软件 ·SELELT A &&选择工作区A为当前工作区 ·CONTINUE &&继续查找选修C1001课程的记录 .SELECT B ·DISPLAY Record# 学号 姓名 专业 3 S8083马黎萍 计算机软件 例1说明了两个库之间建立关联的情况,下面通过用一个数据库与两个数 据库建立关联的例子来说明一个数据库与多个数据库建立联系的情况。 例2:查找成绩不低于90分的学生姓名及课程名。 ·SELECT A ·USE S.DBF ·INDEX ON 学号TO S.IDX ·SELECT B ·USE C.DBF ·INDEX ON 课程号 TO C.IDX ·SELECT C ·USE SC.DBF ·SET RELATION TO 学号INTO S ·SET RELATION TO 课程号 INTOC ADDITIVE ·LOCATE ALL FOR 成绩≥90 ·SELECT A ·DISPLAY Record# 学号 姓名 专业 1 S8081 沈进辉 计算机软件 ·SELECT B ·DISPLAY Record# 课程号 课程名 2 C1002 C语言 ·SELECT C ·CONTINUE ·SELECT A ·DISPLAY Record# 学号 姓名 专业 2 S8082 杨飞 计算机应用 ·SELECT B ·DISPLAY Record# 课程号 课程名 3 C1003 计算机原理 · · · (计算机世界报 1994年 第8期) |
周报全文频道联系方式:010-68130909 |
||||||
| 【关于我们】 【广告服务】 【周报发行】 【投稿指南】 【投稿声明】 【联系方式】 【法律声明】 【媒体手册】 【编读往来】 |
||||||
| Copyright© ccw.com.cn,All rights reserved | ||||||
| 中国计算机世界出版服务公司版权所有 | ||||||