VFP第4章 第9讲

  • 格式:pdf
  • 大小:546.98 KB
  • 文档页数:32
23
Visual FoxPro
USE 学生情况表 ALIAS QK
&ห้องสมุดไป่ตู้别名为QK
USE 学生情况表 &&省略了ALIAS,那么别名为?
24
Visual FoxPro
3.工作区的选择 命令格式是:SELECT <工作区号>|<别名>|0
该命令选择一个工作区为当前工作区,以便
打开一个表或把该工作区中已打开的表作为 当前表进行操作。 如:SELECT 1 USE 学生情况表
Visual FoxPro
VF
isual
1
oxPro
Visual FoxPro
本章主要内容:(P56-86)
第一节:表的建立 第二节:表的显示与维护
第三节:表的排序与索引
第四节:表的统计与计算
第五节:多个表的操作
2
Visual FoxPro
第四节
表的显示与维护
本节主要内容:(P.79-82) 一. 统计记录个数
31
Visual FoxPro
SELECT 1 USE 学生情况表 SELECT 2 USE 学生选课表 &&已建立索引“学号” SET ORDER TO 学号 SELECT 1 SET RELATION TO 学号 INTO 2 && 创建父表与子表的主控索引关系 SELECT 2 &&浏览父?子?表 BROWSE
14
Visual FoxPro
命令中各子句的含义是: (1)FIELDS <数值型字段名表>指出要汇总的 字段,如果缺省则对表所有数值型字段汇总。 (2)<范围>缺省值是ALL。 (3)分类汇总是把所有具有相同关键字表达式 值的记录合并成一条记录,对数值字段进行求 和,对其他字段则取每一类中第一条记录的值 。因此,为了进行分类汇总,必须对当前表按< 关键字表达式>进行排序或建立索引文件。
17
Visual FoxPro
18
Visual FoxPro
19
Visual FoxPro
例 对学生表,按籍贯对入学成绩进行汇总。 操作命令如下: USE 学生 INDEX ON 籍贯 TAG sy5 TOTAL ON 籍贯 TO hz FIELDS 入学成绩 USE hz LIST 籍贯,入学成绩
28
二 表的关联 所谓关联,就是当前表记录指针的移动,能引 起别的表按某种条件相应地移动记录指针。建立 关联后,我们称当前表为主文件,与主文件建立 关联的表为子文件。 1.一对一的关联 命令格式是: SET RELATION TO [<关联表达式1>] INTO <工 作区号1>|<别名1> [,<关联表达式2> INTO <工作区号2>|<别名 2>]…] [ADDITIVE] 该命令使当前表与INTO子句所指定的工作区上 的表按表达式建立关联。
15
Visual FoxPro
(4)若某数值型字段求和的结果长度超过字 段定义时的宽度,系统会修改新表的数值型字
段的宽度以存放求和结果。[1]
(注意与教材上p.81页不同)
[1]周玉萍.Visual
FoxPro 数据库应用教程[M].北
京:人民邮电出版社,2008,3.第99页
16
Visual FoxPro
22
2.工作区号与别名 不同工作区可以用其编号或别名来加以区分。 Visual FoxPro提供了32767个工作区,系统以1 ~32767作为各工作区的编号。 工作区的别名有两种,一种是系统定义的别名 :1~10号工作区的别名分别为字母A~J;另一 种是用户定义的别名,用命令“USE <表文件名 > ALIAS <别名>”指定。由于一个工作区只能打 开一个表,因此可以把表的别名作为工作区的别 名。若未用ALIAS子句对表指定别名,则以表的 主名作为别名。
6
Visual FoxPro
7
Visual FoxPro
二. 求数值表达式之和与平均值 命令格式是: SUM|AVERAGE [<表达式表>] [<范围>] [FOR< 条件>] [WHILE<条件>]
[TO <内存变量表>|ARRAY <数组>
该命令在当前表中,求指定表达式之和或平均
值。
8
Visual FoxPro
32
30
Visual FoxPro
②也可以使用数值表达式建立关联。当主文 件的记录指针移动时,子文件的记录指针移至 和主文件中数值表达式值相等的记录。 (2)若选择ADDITIVE,则在建立新的关联 的同时保持原先的关联,否则会去掉原先的关 联。 (3)省略所有选项时,SET RELATION TO 命令将取消与当前表的所有关联。
命令中各子句的含义是: (1)两条命令的格式相同,SUM命令求指定表 达式之和,而AVERAGE命令求指定表达式的平 均值。 (2)<范围>选择项的缺省值为ALL。 (3)<表达式表>中的表达式可以包括字段名, 也可以不包括字段名,若省略<表达式表>,则 对全部数值型字段求和。计算结果存放在由<内 存变量表>指定的内存变量中或<数组>指定的数 组元素中。
9
Visual FoxPro
例 对学生表,求全体学生的平均年龄。 操作命令如下: USE 学生 AVER YEAR(DATE())-YEAR(出生日期) TO y ?y
10
Visual FoxPro
11
Visual FoxPro
12
Visual FoxPro
13
Visual FoxPro
三. 分类汇总 命令格式是: TOTAL ON <关键字表达式> TO <文件名> [FIELDS <数值型字段名表>] [<范围>] [FOR <条件>] [WHILE <条件>] 该命令对当前表的某些数值型字段,按<关键字 表达式>进行分类统计,并把统计结果存放在< 文件名>指定的表中。
(1)<范围>选择项的缺省值为ALL。使用 TO <内存变量>选择项,将统计记录个数的结 果存入指定的内存变量中。 (2)若设置了SET TALK OFF,则不显示统
计的结果。若设置了SET DELETED ON命令,
则作了删除标记的记录不被计数。
5
Visual FoxPro
例 对学生表,分别统计男女生的人数。 操作命令如下: USE 学生 COUNT FOR 性别=”女” TO x1 COUNT FOR 性别=”男” TO x2 ? x1,x2
29
Visual FoxPro
命令中各子句的含义是: (1)INTO子句指定子文件所在的工作区,<关 联表达式>用于指定关联条件。 ①可以使用索引表达式建立关联。首先在子文 件中按某表达式建立索引并指定为主索引,然后 使用某关联表达式建立关联,当关联成功后,每 当主文件的记录指针移动时,Visual FoxPro就在子 文件中查找索引表达式的值和主文件中关联表达 式的值相匹配的记录,若找到了,则记录指针指 向找到的第一条记录,如没有找到,则记录指针 指向文件尾。注意,索引表达式和关联表达式不 一定相同,当然大多数情况下是相同的。
26
Visual FoxPro
4.工作区的互访
在当前工作区中可以访问其他工作区中的表 的数据,但要在非当前表的字段名前加上别 名和连接符,引用格式为:别名.字段名或别 名->字段名。
27
例:访问其他工作区打开的表字段变量 SELECT 1 USE 学生情况表 SELECT 2 USE 学生选课表 ?学生情况表.学号,学生情况表.姓名,学生情 况表.成绩 && 如果直接输入?学号,姓名,成绩,那么输 出的学号,姓名,成绩是学生选课表里的,而不 是学生情况表里的。
二. 求数值表达式之和与平均值
三. 分类汇总
3
Visual FoxPro
一.统计记录个数 命令格式是: COUNT [<范围>] [FOR<条件>] [WHILE<条 件>] [TO <内存变量>] 该命令统计当前表中,在指定范围内满足指 定条件的记录个数。
4
Visual FoxPro
命令中各子句的含义是:
20
Visual FoxPro
第五节
多个表的操作
本节主要内容:(P.82-85) 一. 工作区
二. 表的关联(一对一)
三. 表的联接(自学)
21
Visual FoxPro 一.工作区 1.工作区的概念 工作区是用来保存表及其相关信息的一片内存空间 。平时讲打开表实际上就是将它从磁盘调入到内存的 某一个工作区。在每个工作区中只能打开一个表文件 ,但可以同时打开与表相关的其他文件,如索引文件 、查询文件等。若在一个工作区中打开一个新的表, 则该工作区中原来的表将被关闭。 有了工作区的概念,我们就可以同时打开多个表 ,但在任何一个时刻用户只能选中一个工作区进行操 作。当前正在操作的工作区称为当前工作区。
25
命令中各子句的含义是: (1)SELECT 0表示选择当前没有被使用的最小号工作 区为当前工作区。用本命令开辟新的工作区,不用考虑 工作区号已用到了多少,使用最为方便。 (2)也可在USE命令中增加IN子句来选择工作区并打 开表。例如,在1号工作区打开学生表,并给它取一个 别名,可用命令: USE 学生 ALIAS zg IN 1 或USE 学生 ALIAS zg IN A && 系统默认将1-10号工作区用字母A-J来表示