• 沒有找到結果。

GO 5 

INSERT  BLANK 

3.7.14 从其他表文件中追加数据 APPEND FROM 命令

命令格式:APPEND FROM <文件名> [FIELDS <字段名表>] [FOR <条件>] 

功能:把指定表文件中的记录有条件或无条件地追加到当前表文件的末尾。

【例 3­27】在表文件 JSJ 中追加学号、计算机记录。 

USE JSJ 

APPEND FROM XSDB FIELDS  学号,计算机  for  院系="文学院" 

本章小结

本章首先介绍了在建立自由表之前应设计一张二维表,再根据二维表进行数据表的设计。 

Visual FoxPro 提供了 3 种建立自由表的方法,即向导、设计器和命令,这里分别对这 3 种方法 作了详细说明。建立了自由表后,为了输入记录,可以采用浏览、编辑、追加及命令等多种方 式。表的操作与使用包括如何打开/关闭表、浏览表数据、修改表数据、过滤表数据、定位表 记录、删除表记录、恢复表记录以及对表结构的相关操作等内容。Visual FoxPro 提供了物理排 序和逻辑排序两种方法对表记录进行排序,其中逻辑排序方法(即索引方法)具有速度快、效 率高、大大减少数据冗余的优点,因而得到普遍采用。查询和统计是数据库应用的重要内容,

本章介绍了顺序查询和索引查询两种传统的查询方法, 以及对数据库中的数据进行统计计算的 相关命令。最后,对使用多个表涉及的工作区以及数据工作期的相关概念进行了阐述。本章是 全书的重点, 读者应认真掌握表的建立和操作方法以及索引的概念和操作, 这对后续数据库的 学习大有帮助。

习题 3

一、选择题 

1.在 Visual FoxPro 数据表中,记录是由字段值构成的数据序列,但数据长度要比各字段 宽度之和多一个字节,这个字节是用来存放( )的。 

A.记录分隔标记  B.记录序号 

C.记录指针定位标记  D.删除标记

2.某表文件有姓名(C,6)、入学总分(N,6,2)和特长爱好(备注型)共  3  个字段,则该表文件 的记录长度为( ) 。 

A.16  B.17  C.18  D.19 

3.设表文件中共有  51  条记录,执行命令  GO  BOTTOM  后,记录指针指向的记录号是

( ) 。 

A.51  B.1  C.52  D.EOF()  4.在 Visual FoxPro 中,关于自由表的叙述,正确的是( ) 。 

B..IDX 是 FoxBASE 建立的索引文件,.CDX 是 Visual FoxPro 建立的索引文件  C..IDX 是单索引文件,.CDX 是复合索引文件 

D..IDX 索引文件可以进行升序或降序排序 

13.若对自由表的某字段值要求唯一,则应对该字段创建( ) 。 

A.主索引  B.唯一索引  C.候选索引  D.普通索引 

14.表文件  ST.DBF 中字段:姓名(C,6)、出生日期(D)、总分(N,5,1)等,要建立姓名、总 分、出生日期的复合索引,其索引关键字表达式应是( ) 。 

A.姓名+总分+出生日期

B.姓名,总分,出生日期 

A.REPLACE  ALL  工资总额  WITH  基本工资+奖金+津贴­所得税  B.TOTAL  ON  工资总额  FIELDS  基本工资,奖金,津贴,所得税  C.REPLACE  工资总额  WITH  基本工资+奖金+津贴­所得税  D.SUM  基本工资+奖金+津贴­所得税  TO  工资总额 

17.学生表中“实验成绩”是逻辑型字段,该字段的值为.T.表示实验成绩为通过,否则 为没有通过。若想统计“实验成绩”没有通过的学生人数,应使用命令( ) 。 

A.COUNT  TO  X  FOR  实验成绩=.F. 

B.COUNT  TO  X  FOR "实验成绩"=.F. 

C.COUNT  TO  X  FOR  实验成绩="F" 

D.COUNT  TO  X  FOR  实验成绩=".F. " 

18.假设职称是某表文件中的一个字段,如果要计算所有正、副教授的平均工资,并将 结果赋予变量 PJ 中,应使用的命令是( ) 。 

A.AVERAGE  工资  TO  PJ  FOR  "教授"$职称 

B.AVERAGE  FIELDS  工资  TO  PJ  FOR  "教授"$职称 

C.AVERAGE  工资  TO  PJ  FOR  职称="副教授".AND.职称="教授" 

D.AVERAGE  工资  TO  PJ  FOR  职称="副教授".OR."教授" 

19.不论索引是否生效,定位到相同记录上的命令是( ) 。  A.GO TOP  B.GO BOTTOM 

C.GO 6  D.SKIP 

20.刚打开一个空数据表时,用 EOF()和 BOF()测试,其结果一定是( ) 。  A..T.和.T.  B..F.和.F.  C..T.和.F.  D..F..和 T. 

21. 设当前数据表中包含 10 条记录, 当 EOF()为真时, 命令?RECNO()的显示结果是 ( ) 。 

A.10  B.11  C.0  D.空 

22.已知表中有字符型字段“职称”和“性别” ,要建立一个索引,要求首先按职称排序,

职称相同时再按性别排序,正确的命令是( ) 。 

A.INDEX ON  职称+性别  TO ttt  B.INDEX ON  性别+职称  TO ttt  C.INDEX ON 职称,性别  TO ttt  D.INDEX ON  性别,职称  TO ttt  23.有关 ZAP 命令的描述,正确的是( ) 。 

A.ZAP 命令只能删除当前表的当前记录 

B.ZAP 命令只能删除当前表的带有删除标记的记录  C.ZAP 命令能删除当前表的全部记录

D.ZAP 命令能删除表的结构和全部记录 

24.有一学生表文件,且通过表设计器已经为该表建立了若干普通索引。其中一个索引 的索引表达式为姓名字段,索引名为 XM。现假设学生表已经打开,且处于当前工作区中,那 么可以将上述索引设置为当前索引的命令是( ) 。 

A.SET INDEX TO  姓名  B.SET INDEX TO XM  C.SET ORDER TO  姓名  D.SET ORDER TO XM 

25.当前打开的图书表中有字符型字段“图书号” ,要求将图书号以字母 A 开头的图书记 录全部打上删除标记,通常可以使用命令( ) 。 

A.DELETE FOR  图书号="A" 

B.DELETE WHILE  图书号="A" 

C.DELETE FOR SUBS(图书号,1,1)="A" 

D.DELETE FOR  图书号  LIKE "A%" 

26.执行下面的命令后,函数 EOF()的值一定为.T.的是( ) 。  A.REPLACE 基本工资 WITH 基本工资+200 

B.LIST NEXT 10 

C.SUM 基本工资  TO SS WHILE  性别="女" 

D.DISPLAY FOR  基本工资>800 

27.以下关于空值(NULL)的说法,正确的是( ) 。 

A.空值等同于空字符串  B.空值表示字段或变量还没有确定值  C.VFP 不支持空值  D.空值等同于数值 0 

28.命令 SELECT 0 的功能是( ) 。 

A.选择编号最小的未使用工作区  B.选择 0 号工作区  C.关闭当前工作区的表  D.选择当前工作区  29.可以随着数据表文件的打开而自动打开的索引文件是( ) 。 

A.单索引文件(.IDX)  B.复合索引文件(.CDX) 

C.结构复合索引文件(.CDX)  D.非结构复合索引文件(.CDX) 

30.在 Visual FoxPro 系统中,.DBF 文件被称为( ) 。 

A.LIST FOR !XB  B.LIST FOR XB  C.LIST FOR XB="女"  D.LIST FOR XB=.F. 

34.若 TM_BMB 表包含 50 条记录,在执行 GO  TOP 命令后, ( )命令不能显示所有 记录。 

A.LIST ALL  B.LIST REST  C.LIST NEXT 50  D.LIST RECORD 50

35.执行  USE TM_BMB(回车)SKIP  ­1 后,下列显示值一定是.F.的命令是( ) 。  A.?BOF()  B.?EOF()  C.?.T.  D.?RECNO()=1  二、填空题 

1.建立“学生情况”表结构时,如果最高奖学金不超过 120.58 元,奖学金字段的宽度和 小数位至少应为________。 

2.在 Visual FoxPro 数据表管理系统中,备注型文件的扩展名是________。 

3.假设考生表已经打开,表中有“年龄” (N 型)字段,要统计年龄小于 20 岁的考生人 数,并将结果存储于变量 M1 中,应该使用的完整命令是________。 

4.在 Visual FoxPro 命令窗口中,要修改表的结构,应该输入命令________。 

5.表 XS.DBF 中有日期型字段“出生日期” ,列出其中所有 12 月份出生的男同学记录: 

DISPLAY    FOR  ________.AND.性别="男" 

6.某表有 50 个记录,其当前记录为 9 号记录,当执行了 SKIP  2*3 后,系统显示的记录 号为________。 

7.一个有多条记录的表打开后,要在最后一条记录后增加一条空记录,应使用命令  ________。 

8.已打开表文件,其中“出生日期”字段为日期型,年龄字段为数值型。要计算每人今 年的年龄并把其值填入“年龄”字段中,应使用命令________。 

9. 要想在一个打开的表中物理地删除某些记录, 应先后使用的两个命令分别是________。 

10.若能够正常执行命令 REPLACE ALL MYD WITH DATE(),说明字段 MYD 的类型是  ________。 

11.当前数据库文件有  10  条记录,要在第  5  条记录后面插入  1  条新记录,应使用命令  ________。 

12.把当前表当前记录的学号、姓名字段值复制到数组 A 的命令是: 

SCATTER FIELD 学号,姓名________ 

三、上机操作题  1.练习建立表文件

在 E 盘根文件夹上建立 VFLX 文件夹,然后按下列步骤操作:

(1)建立如表 3­4 所示的表结构。

表 3­4  表结构

字段名 字段类型 宽度 小数位数

学号 

姓名 

性别 

入学日期 

奖学金 

团员否 

爱好  4

(2)为该表建立以“学号”字段升序排序的候选索引。

(3)输入 3~4 条记录,内容自定。

(4)完成存盘,将此表命名为 XSH.DBF,存于 E 盘 VFLX 文件夹中。 

2.表文件的基本操作

将 XSDB.DBF、YY.DBF、JSJ.DBF 复制到 VFLX 文件夹内,以备以下操作使用。以下除 最后一题均使用表文件 XSDB,假设 XSDB 已打开。

(1)使用 DISPLAY 命令显示当前记录。

(2)使用 DISPLAY 或 LIST 命令显示前 3 条记录。

(3)使用 DISPLAY 或 LIST 命令显示 6 号记录。

(4)使用 BROWSE 命令显示文学院所有男同学的记录。

(5)使用 BROWSE 命令显示 10 月 1 日出生的同学的姓名、性别和生日。

(6)使用 REPLACE 命令,对英语成绩在 90(包括 90)分以上的记录,将其奖学金增加  50 元。

(7)使用 COPY 命令,复制一个与 XSDB 表文件的结构完全相同的空表 KB.DBF。

(8)使用 COPY 命令,将表文件 XSDB 中所有党员的记录组成表文件 DY.DBF。

(9)使用 COUNT 命令统计女同学人数,并将结果存入变量 R 中。

(10)使用 AVERAGE 命令求文学院学生的英语平均成绩,并将结果存入变量 X 中。

(11)使用 SUM 命令求男生的奖学金总额,并将结果存入变量 Y 中。

(12)在数据工作期窗口中分别打开 XSDB.DBF、YY.DBF、JSJ.DBF 共 3 个表文件。

相關文件