第三章习题及答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、思考题
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)37B)38C)39D)40
2.在表文件文件尾部增加一条空记录,应该使用命令。
A)APPEND B)APPEND BLANK C)INSERT D)INSERT BLANK 3.设表文件及其索引文件已打开,为了确保指针定位在物理记录号为1的记录上,应该使用命令。
A)GO TOP B)GO BOF()C)SKIP 1D)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 900D)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.写出下列显示表记录的命令。
(1)显示zg.dbf中所有的讲师
(2)显示所有女教师的姓名
(3)显示70年后出生的教师
(4)显示第三条记录的内容
(5)显示前三条男教师的姓名,出生日期,职称
(6)从第3条记录开始显示到末尾记录
(7)显示所有男教授的姓名、年龄、基本工资
(8)显示所有男性教授或副教授
(9)显示所有姓林的教师
(10)显示姓名中有“林”字的记录。
3.修改命令。
(1)计算实发工资字段的值,实发工资=基本工资+津贴-扣款。
(2)在实发工资为0的情况下,分别执行下列三条命令,比较它们的执行结果。
Repl 实发工资with 基本工资+津贴-扣款
Repl 实发工资with 基本工资+津贴-扣款for 职称="讲师"
Repl all 实发工资with 基本工资+津贴-扣款
4.完成下列删除与恢复的命令。
(1)删除所有男教师的记录
(2)在删除所有男教师的记录的前提下,除姓“林”的外,恢复所有男教师的记录
(3)在删除所有男教师的记录的前提下,除姓“陈”的助讲外,恢复所有男教师的记录5.对zg.dbf完成下排序、索引命令。
(1)按基本工资降序建立排序文件szg1.dbf
(2)按基本工资建立单项索引,文件名为izg1.idx
(3)按基本工资建立结构复合索引文件,按降序索引
(4)按基本工资建立独立复合索引文件,索引标识为jbgz,按降序索引,文件名为zgd1.cdx (5)按基本工资升序,基本工资相同再按出生年月建立索引文件,文件名为zgd2.cdx (6)分别按姓名、职称、出生日期建立结构复合索引文件,索引标识分别为XM、ZC、BIRTHDAY。
(7)打开前面所建的所有索引文件,设置结构复合索引文件为主控索引文件,设置XM为主控索引。
6.查找与统计。
(1)查找林一凡
(2)查找姓王的人
(3)查找工资是820.00的记录
(4)查找职工号为3002姓名为丁强的记录
(5)查找66年8月4日出生,职称为副教授的记录
(6)统计男教师与女教师的人数
(7)统计女教师的实发工资、津贴总和
(8)求男教师的平均基本工资
(9)计算平均基本工资、平均津贴、最高基本工资和最少基本工资
(10)按职称进行基本工资的汇总,汇总结果写入表zchz.dbf