第三章:  Visual FoxPro 6.0 数据库及其操作

  关闭窗口       

3.8 多数据表操作

     3.8.1 工作区的选择
  
3.8.2 数据表的联接
 

3.8.1 工作区的选择

1. 工作区

在 VFP 中,对数据表进行操作之前,必须先将其打开,即从外部存储器调入内存工作区,然后才能使用。。 VFP 系统允许在 32767 个工作区中打开和操作数据表,但同一时刻一个工作区只能打开一个数据表文件。如果在同一工作区中打开了另一个数据表文件,则系统自动关闭前一个已打开的数据表文件。如果需要同时使用多个数据表文件,需要在不同的工作区中分别打开。

在 VFP 中,每个工作区都有一个编号,称为工作区号,用 1,2,3,4 等表示,对 1 ~ 10 号工作区,还可以用 A ~ J 等 10 个英文字母来表示。系统默认总是在第 1 个工作区中工作。以前打开数据表时,虽然没有指定工作区,但实际上都是在第 1 个工作区打开和操作表的。

2. 选择工作区

格式: SELECT< 工作区号 | 别名 |0>

功能:选择需要使用的工作区。

说明:

•  别名是代表该数据表文件的一个更便于阅读、操作或记忆的文件名。可以使用 USE 命令打开数据表时定义该表的别名。

USE < 数据表文件名 > ALIAS < 数据表文件的别名 >

②如果在某个工作区中打开数据表文件的同时,为该文件定义了别名,则可以使用别名代表该工作区进行操作;若没有定义别名,则使用数据表文件名代表该工作区。

③ SELECT 0 表示让系统自动选择工儿区号最小的空闲工作区作为当前工作区。

④执行 SELECT 命令后,最后被选择的工作区为当前工作区。

3.8.2 数据表的联接

1. 数据表的关联

格式: SET RELATION TO [< 关键字表达式 1> INTO< 工作区号 | 别名 >][ , < 关键字表达式 2> INTO< 工作区号 | 别名 > … ][ADDITIVE]

功能:当前工作区中的数据表文件与其它工作区中的数据表文件通过关键字建立关联。

说明:

①关键字表达式的值必须是相关联的两个数据表共同具有的字段,并且 < 别名 > 表文件必须已经按关键字表达式建立了索引文件并处于打开状态。

②在一条 SET RELATION 命令中可以创建单个父表与多个子表之间的关联,各个关系之间逗号隔开。

③ ADDITIVE 选项表示用本命令建立关联时仍然保留该工作区与其它工作区已经建立的关联。当要建立多个关联时,必须使用 ADDITIVE 选项。

④两个数据表建立关联后,当前表的记录指针移到某一记录时,被关联的数据表的记录指针也自动指向关键字值相同的记录上。如果在子表中没有找到匹配的记录,指针指向子表文件尾。

⑤当子表具有多个关键字值相同的记录时,指针只指向关键字值相同的第 1 条记录。

⑥不带参数的 SET RELATION TO 命令,表示删除当前工作区中所有的关系。

⑦如果需要切断父表与子表之间的关联,可以使用命令:

SET RELATION OFF INTO< 工作区号 >|< 别名 >

表之间的逻辑联接是一种临时关系,会随着数据表的关闭而自动关闭,下次再使用时必须重新建立。

2. 数据表的物理联接

数据表之间的物理联接是指将两个表文件联接生成一个新的表文件,新表文件中的字段从两个表中选取。

格式: JOIN WITH < 工作区号 >|< 别名 > TO < 新表文件名 >

[FIELDS< 字段名表 >] FOR < 联接条件 >

功能:将不同工作区中的两个表文件联接生成一个新的表文件。

①生成的新表文件扩展名仍为 .DBF 。

② FIELDS< 字段名表 > 指定新表文件中所包含的字段,

③ FOR < 联接条件 > 指定两个表文件联接的条件,只有满足条件的记录才被联接。

关闭窗口      
 
版权所有西北师范大学数学与信息科学学院