9.1 多工作区操作
目的与要求: 通过本次课的学习,掌握多工作区的操作。 | ||||||||||||||||||||||
教学内容与时间安排、教学方法: 教学安排: 多工作区的访问 40分钟 表的关联、连接、更新 40分钟 教学方法: CAI、图形、表格 | ||||||||||||||||||||||
教学重点及如何突出重点、难点及如何突破难点: 教学重点: 多工作区的访问、连接、关联和更新 教学难点: 表的关联、连接、更新 | ||||||||||||||||||||||
基本内容 |
教学 |
课堂设计 |
||||||||||||||||||||
5.5 多工作区操作 一、 工作区 1.工作区的编号及别名 1)VFP为用户提供了32767个工作区,VFP为每个工作区进行了编号(即1,2,3,……,32767)——称工作区号,其中1—10号工作区,VFP还分别命以别名A~J。即:
2)VFP规定,在任一时刻,只能选择一个工作区进行工作,即任一时刻VFP只能对一个表文件进行操作,为了区别于其它工作区,将当前正在工作的工作区称为当前工作区,把在当前工作区打开的表文件称当前表文件。 2.表的别名 在打开一个表文件的同时,可以给打开的表文件命一个<别名>作为工作区的标示符。如果在打开表文件时没有给表文件命以别名,VFP默认被打开的表文件名去掉扩展名部分的文件名为该表的别名。下面看一下在不同的工作区中打开表文件时给表文件命以别名的命令。 【格式】USE 〈表文件名〉 [ALIAS〈别名〉] 【功能】在打开表文件的同时给表文件命一个别名。 【说明】 [ALIAS〈别名〉]子句:若省略,VFP默认打开表去掉扩展名部分的文件名部分就是表的别名(即与打开的表文件名同名)。若选择该子句,表示给打开的表命一个别名。 别名的命名规则: 1) 必须以汉字、字母、下划线开头,由汉字、字母、数字或下划线组成。例:rsd aa a_b h1 表别名归纳:表文件有3种等效的别名,第一种是VFP规定的别名A-J;第二种是打开表文件时定义的;第三种是打开表文件时没有给表文件定义别名的情况下,取表文件名为别名。 【例1】USE D:\MYVFP\STUDENT ALIAS XS && XS就是STUDENT表的别名。 【例2】USE D:\MYVFP\STUDENT &&STUDENT就是表的别名。 3.选择工作区 说明:因在任一时刻,只能选择一个工作区对该工作区中打开的表文件进行操作,因此这就涉及到选择工作区、设置当前工作区的操作。下面看选择工作区的命令格式及使用方法。 【格式1】SELECT <工作区号>|<别名>|<0> 【功能】把工作区号或别名所指定的工作区置为当前工作区。 【说明】 执行该命令后,命令中所指的工作区就是当前工作区。 <工作区号>:1到32767 <别名>子句:有以上归纳的3种情况。 <0>子句:表示选择当前没有使用的编号最小的工作区。 【格式2】 USE <表文件名> [[ALIAS〈别名>] IN 0|<工作区编号 >|<工作区别名> 【功能】在打开表文件的同时选择工作区。 【说明】 在打开表文件时选择工作区,当前工作区仍为原(正使用)工作区。 IN 0子句:表示选择当前没有使用的编号最小的工作区。 【注】 启动VFP后.系统默认1号工作区为当前工作区。 在当前工作区访问非当前工作区中的字段时,应在被访问文件和该字段前加入“工作区别名”和“->”标示符或“工作区别名”和“.”标示符,此时对外工作区访问时,并不改变被访问工作区的记录指针。 4.多表数据查询 多表数据的查询实际指的是多表之间数据的互访,如在当前表所在的工作区访问其它工作区表中的数据、又如,用一个表中的数据去替换另一个表中的数据,这就是在实际工作中常常用到的多表之间数据的查询和使用问题。 【说明】 在当前工作区访问非当前工作区中的字段时,应在被访问文件名与字段之间加入“工作区别名”和“->”或“工作区别名”和“.”标示符,,此时对另外工作区的访问,并不改变被访问工作区表文件的的记录指针。 -----------本节课结束----------- 二、表的关联 说明: 将当前工作区称做主区,主区中打开的表文件称主表(或父表),非当前工作区称辅区,辅区中打开的表称辅表(子表)。 建立关联可使用命令,也可使用“数据工作期”窗口建立。 1、建立关联的条件 建立表之间关联,一是要使建立关联的表具有相同的字段,二是每个表都要以该字段建立索引。在这一前提下,以其中一个表中的字段与另一个表中的同名字段建立关联,当主表中记录指针移动时,辅表中的记录指针会随之移动。 关联的过程:主表中记录指针移动一次,辅表中记录指针遍历一周。 2、用命令建立关联 【格式】SET RELATION TO [<关键字表达式1> INTO <子表别名>,<关键字表达式2> INTO <别名>...] [ADDITIVE] 【功能】建立当前工作区打开的表与其它工区中打开的表之间的关联。 【说明】 〈别名〉:是指与当前表(父表)相关联的表(子表)文件的别名。 <关联表达式〉:可以是字符表达式、数值表达式、日期表达式,它们是建立关联的依据。 注:★若〈关联表达式〉是字符表达式时,被关联表(子表)应事先以〈关联表达式〉为关键字建立索引文件,且此关键字必须是两表中共有的字段。并将该索引文件规定为主索引文件。每当主库的记录指针重新定位时,就寻找子表中与索引关键字相一致的第一条记录,并把记录指针指向该记录(相当在子表中执行了一个SEEK命令)
建立“一对多关联”命令 【格式】set skip to [<别名1>][,<别名2>]... 【功能】建立关联表之间的一对多关联关系。 【说明】 <别名>选项:代表当前表与<别名>所指的表之间相匹配的记录是一对多关系。 该命令是在使用了set relation命令建立了关联以后才起作用。 省略<别名>选项,表示撤销当前表与其所有相关联表的一对多关联。 三、表之间的连接 【命令】join with <别名> to <新表文件> for<条件>[fields<字段名表>] 【功能】在当前表文件与指定别名的表文件之间建立连接。 四、表文件的更新 【命令】update on <关键字段> from <别名> replace <字段名1> with <表达式1>[,<字段名2> with <表达式2>,…<字段名n> with <表达式n>] 【功能】利用<别名>表的表达式值更新当前表文件的记录。
-----------本节课结束-----------
|
讲述
|
工作区的编号和别名5分钟
表的别名10分钟
工作区选择10分钟
多表数据查询15分钟
建立关联的条件5分钟
建立关联的命令15分钟
表之间的连接10分钟
表文件更新10分钟 |