一、思考题
1.什么是数据库表?什么是自由表?
2.什么是表结构?表的哪几种字段的宽度是固定不变的?
3.打开表文件之后,为什么在Visual FoxPro主窗口没有任何显示信息?
4.如何编辑备注型字段的值?
5.LIST命令和DISPLAY命令有什么区别?
6.如果缺省范围子句,哪几条命令只对当前记录操作?
7.ZAP命令和PACK命令有什么区别?
8.什么是记录指针,它的作用是什么?
9.什么是排序和索引?为什么索引的查询效率高?
10.Visual FoxPro有几种类型的索引?是否所有的索引都可以在自由表中使用?在表设计器中可以创建的索引文件是哪一种?
11.什么是主控索引文件和主控索引标识?它们的作用是什么?
12.LOCATE、FIND、SEEK命令在使用上有什么区别?怎么判断查询是否成功?
二、选择题
1.某表文件有5个字段,其中3 个字符型宽度分别为6、12、和10,另外还有一个逻辑型字段和一个日期型字段,该数据库文件中每条记录的总字节数是 。
A)37 B)38 C)39 D)40
2.在表文件文件尾部增加一条空记录,应该使用命令 。
A)APPEND B)APPEND BLANK C)INSERT D)INSERT BLANK
3.设表文件及其索引文件已打开,为了确保指针定位在物理记录号为1的记录上,应该使用命令 。
A)GO TOP B)GO BOF() C)SKIP 1 D)GO 1
4.设职工表文件已经打开,其中有工资字段,要把指针定位在第一个工资大于620元的记录上,应使用命令 。
A)FIND FOR 工资>620 B)SEEK 工资>620
C)LOCATE FOR 工资>620 D)FIND 工资>620
5.删除学生表中姓王的学生,应使用命令 。
A)DELETE FOR “王”$姓名 B)DELETE FOR SUBSTR (姓名,1,2)=“王”
C)DELETE FOR 姓名=王* D)DELETE FOR RIGHT (姓名,1)=“王”
6.USE职工
LOCATE FOR工资=900
为了将指针定位在下一个工资是900的记录上,应该接着使用命令 。
A)SKIP B)CONTINUE C)SEEK 900 D)FIND 900
7.设当前表有10条记录,当EOF()为真时,命令?RECNO()的显示结果是 。
A)10 B)11 C)0 D)空
8.设当前表中姓名字段为字符型,要把内存变量NAME 字符串的内容输入到当前记录的姓名字段,应当使用命令 。
A)姓名=NAME B)REPLACE 姓名 WITH NAME
C)REPLACE 姓名 WITH &NAME D)REPLACE ALL 姓名 WITH NAME
9.在Visual FoxPro中,打开索引文件的命令中,错误的是 。
A) USE<库文件名> INDEX TO <索引文件名>
B) USE<库文件名> INDEX <索引文件名>
C) INDEX ON 职工号 TO <索引文件名>
D) SET INDEX TO <索引文件名>
10.顺序执行下面命令之后,屏幕所显示的记录号顺序是 。
USE XYZ
GO 6
LIST NEXT 4
A)1~4 B)4~7 C)6~9 D)7~10
11.在Visual FoxPro中,可以使用FOUND()函数来检测查询是否成功的命令包括 。
A) LIST、FIND、SEEK B)FIND、SEEK、LOCATE
C) FIND、DISPLAY、SEEK D) LIST、SEEK、LOCATE
三、上机题
1、建立表与复制表操作:
(1)建立一个职工表(zg.dbf),字段有:职工号(C,6),姓名(C,8),性别(L),出生日期(D),职称(C,10),基本工资(N,8,2),奖金(N,8,2),实发工资(N,8,2),其内容如下:
(2)修改职工表表结构,在实发工资前增加一个新的字段,扣款(N,8,2)。
(3)将zg.dbf的表结构复制到新表zg1.dbf中。
(4)将zg.dbf 中的所有男教师的记录都复制到zg2.dbf中。
2、写出下列显示表记录的命令。