(3)求贷款平均值并存入变量PJDK,应该用命令___③_____。
(4)统计女学生的人数并存入变量HOFW,应该用命令____④___。 【解析】
(1) 创建单索引文件的命令格式为INDEX ON <索引表达式> TO <单索引文件名>
(2) 数据求和的命令格式为SUM [<数值表达式表>] [<范围>] [FOR<条件>] [WHILE<条件>] [TO <内存变量
表>]
(3) 数据求平均值的命令格式为AVERAGE [<数值表达式表>][<范围>][FOR<条件>][WHILE<条件>][TO <内存变量表>]
(4) 统计记录数的命令格式为COUNT [<范围>][FOR<条件>][WHILE<条件>][TO<内存变量>] 【答案】①INDEX ON 学号TO ISC ②SUM 贷款 TO DKH ③AVER 贷款 TO PJDK
④COUNT TO HOFW FOR性别=“女”
6.执行如下命令序列: USE BOOKS
LIST
假设屏幕显示如下:
RECORD# 书号 书名 作者 定价 1 P8291D 操作系统 王仲一 12.00 2 P1322F 接口技术 刘达 13.00 3 B1963E 离散数学 周云飞 9.30 4 F9136H 单片机 于群 8.50 INDEX ON书号 TO SH LIST
则最后一条LIST命令所显示的数据记录中,记录号顺序是________。
【解析】因为在本题中创建了一个单索引,是按书号(C型字段)的值升序排列,故记录的逻辑顺序变为B1963E 7.教师数据表文件中,有职称(C,6)字段和基本工资(N,6,2)字段。要求先按职称,再按基本工资升序建立单索引文件ZS.IDX,应使用命令_____________。 【解析】创建单索引文件的命令格式为INDEX ON <索引表达式> TO <单索引文件名>,本题中索引表达式应为 “职称+ STR(基本工资,6,2)”,因为职称是字符型字段,而基本工资是数值型字段,所以先用STR( )函数将基本工资的类型转换成字符型,再与职称字段连接生成一个字符型索引表达式。 【答案】INDEX ON职称+STR(基本工资,6,2) TO ZS 8.执行如下命令序列: USE STUDENT LIST 假设屏幕显示如下: Record# 姓名 性别 年龄 1 欧阳惠 女 23 2 李 明 男 24 3 郭 吴 男 21 4 吴 友 女 25 INDEX ON 性别 TO SEX LIST 则最后一条LIST命令显示的数据记录中,姓名的顺序依次是__________。 【解析】本题中,对STUDENT表按性别字段升序建立了单索引文件。性别字段的值只有“男”和“女”两个,因为“男”字的ASCII码值小于“女”字的ASCII码值,因此,记录表中性别为“男”的记录会排在性别为“女”的记录前面。当性别相同时,按记录原来的先后顺序排列。 【答案】李明,郭吴,欧阳惠,吴友 9.执行如下命令序列: USE STUDENT- LIST 假设屏幕显示如下: Record# 姓名 性别 年龄 1 欧阳惠 女 23 2 李 明 男 27 3 杨 霞 女 24 4 郭 吴 男 21 5 吴 友 女 25 6 何文强 男 24 INDEX ON 年龄 TO AGE SEEK 23 SKIP ?姓名,年龄 则最后一条命令的显示内容为__________。 【解析】本题中,对STUDENT表按年龄字段升序建立了单索引文件。SKIP属于记录指针相对定位命令,表示向逻辑位置的下一条移动。而按照年龄升序排列后的记录号次序是: 4,1,3,6,5,2。执行SEEK 23命令后,指针定位在记录号为1的记录上,此时执行SKIP命令使指针下移一位,则指向记录号为3的记录。因此,最后一条命令显示的是第3号记录的姓名和年龄字段值。 【答案】杨霞 24 10.设职工数据表文件的内容如下: 编号 姓名 部门 工资 奖金 1001 常胜 车间 850 200 1002 汪洋 车间 700 200 1003 陆地 车间 680 200 2001 林木 设计科 900 150 2002 陈路 设计科 1200 150 3004 孙海 财务科 900 100 3006 李扬 财务科 1300 100 3010 张虎 财务科 1100 100 请对以下有关命令的执行结果依次填空: USE 职工 AVERAGE 工资TO a FOR 部门=“财务科” ?a &&屏幕显示变量a的值是____①_______ INDEX ON 工资TO idxl GO 1 ?编号,姓名 &&屏幕显示结果是_____②____ SEEK 900 SKIP 3 ?工资+奖金 &&屏幕显示结果是___③______ LOCATE FOR 工资=900 CONTINUE ?姓名 &&屏幕显示结果是_____④_______ SUM 奖全 TO b FOR SUBSTR(编号,1,1)=“1” ?b &&屏幕显示变量b的值是____⑤____。 【解析】记录按照工资升序排列后,编号字段的逻辑次序是:1003,1002,1001,2001,3004, 3010,2002,3006。执行SEEK 900命令后,指针定位在第一个工资为900的记录,即编号为2001的记录,再执行SKIP 3命令使记录指针下移三条,则指向编号为2002的记录。此时,“?工资+奖金”命令等价于?1200+150。 【答案】①1100 ②1001 常胜(逻辑次序与物理次序) ③1350 ④孙海 ⑤600 11.执行如下命令序列: USE STUDENT LIST 假设屏幕显示如下: Record# 姓名 学号 年龄 性别 1 李 红 098765 20 男 2 王 菩 123456 19 男 3 赵 师 345678 21 女 4 刘 知 863745 18 男 5 钱 生 374951 20 女 6 杨 博 903278 18 女 INDEX ON 年龄TO STU FIND 20 SKIP DISP姓名 最后一条命令显示的学生姓名是__________ 【解析】本题中,对STUDENT表按照年龄字段升序建立了单索引文件。索引后的记录号次序分别4、6、2、1、5、3,使用命令FIND 20将按逻辑顺序查找第一条年龄为20的记录,应该是记录号为1的学生。执行SKIP命令后,将记录指针往逻辑顺序的下一条移动,即记录号5的学生记录。 【答案】钱生 12.执行如下命令序列,请填空: USE ZG LIST 假设屏幕显示如下: Record# XM NL ZC JBGZ 1 李一 21 工人 230.00 2 李二 29 工程师 350.00 3 赵三 18 工人 280.00 4 刘四 32 技术员 300.00 5 王五 24 总工 890.00 INDEX ON ZC+STR(1000-JBGZ,6,2) TO ZG LIST ZC,JBGZ 屏幕将显示如下: ZC JBGZ 工程师 350.00 工人 __①____ 工人 ②_____ 技术员 300.00 总工 890.00 【解析】本题中,对ZG表建立了单索引文件,索引表达式为ZC+STR(1000-JBGZ,6,2),表示先按ZC字段值升序排序,当ZC字段值相同时,再按JBGZ字段值降序排列。 【答案】①280.00 ②230.00 13.用作建立主索引或候选索引的关键字段,其值必须是____①____的,一个数据库表可以建立___②___个主索引和____③____个候选索引。 【解析】创建主索引和候选索引时,索引关键字段的值必须是唯一的,也就是各不相同。且一个数据库表只能有一个主索引,但可以有多个候选索引。 【答案】①各不相同 ②一 ⑧多 第五章 多表与数据库的操作 一、单选题及解析 1.JS.dbf表已在2号工作区打开,2号工作区非当前工作区,要把JS.dbf表所在工作区选为当前工作区的命令是( )。 A. SELECT 0 B. SELECT 2 IN JS C. SELECT JS D. SELECT (JS) 【解析】本题考查的知识点是工作区的选择。工作区就是内存中的一块区域。打开表文件的实际操作就是从磁盘将数据表调入内存的某个工作区。在任一时刻用户只能选择一个工作区进行操作,这个工作区称为当前工作区。 SELECT命令在选择当前工作区时,可使用工作区号、别名或0。SELECT 0命令的功能是选择未 用的最小工作区号,所以选项A不能使用。选项B和选项D命令格式是错误的,选项C是通过别名的方式选择工作区的,因此,正确答案为选项C。 【答案】C 2.在数据工作期窗口中打开表时,下列说法正确的是( )。 A. 将选择未被使用的区号最小的工作区 B. 选择任意一个工作区 C.只能打开自由表 D.必须先选定工作区号,才能打开表 【解析】本题考查的知识点是数据工作期。数据工作期是一个用来设置数据工作环境的交互操作窗口。利用数据工作期窗口可以打开或显示表或视图、建立表间临时关系以及设置工作区属性等。 打开表时,Visual FoxPro将自动选择未被使用的区号最小的工作区,打开自由表或数据库表均可, 所以选项B、C、D说法不正确。 【答案】A 3.下列说法中,不正确的是( )。 A. Visual FoxPro可在内存中开辟32767个工作区 B. 系统为1~10工作区规定了一个缺省别名,别名分别用字母A、B、…J表示 C.Visual FoxPro 启动后,默认1号工作区为当前工作区 D.在任一时刻只能对当前工作区文件进行操作 【解析】本题考查的知识点是工作区的基本概念。Visual FoxPro系统提供32767个工作区,每个工作区可以用1~32767作为各工作区的编号,称为工作区号。启动Visual FoxPro系统时,系统默认编号为1的工作区为当前工作区。 Visual FoxPro系统对前10个工作区除使用1~10编号外,还为其定义了别名,即依次用A~J来表 示1~10号工作区。在当前工作区中可以访问其他工作区中已打开的表的数据,可用别名.字段名或别名->字段名来实现。 【答案】D 4.要控制两个表中数据的完整性和一致性可以设置“参照完整性”,要求这两个表( )。 A. 是同一个数据库中的表 B. 不同数据库中的两个表 C. 两个自由表 D. 一个是数据库表,一个是自由表 【解析】本题考查的知识点是参照完整性。数据库中的完整性是指数据的正确性和相容性。关系模型的完整性规则是对关系的某种约束条件。关系模型中有三类完整性约束:实体完整性、参照完整性和用户定义完整性。其中实体完整性和参照性是关系模型必须满足的完整性约束,被称为关系的两个不变性。参照完整性是根据表间的某些规则,使得插入、删除、更新记录时能保持已定的表间关系。参照完整性只在建立永久关系的表中发生,所以必须是同一个数据库的两个表。 【答案】A 5.在Visual FoxPro中,可以对字段设置默认值的表是( )。 A. 必须是数据库表 B. 必须是自由表 C.自由表或数据库表 D.不能设置字段的默认值 【解析】本题考查的知识点是字段有效性。在Visual FoxPro中,可以创建两种表,即数据库表与自由表。数据库表是数据库的一部分。在数据库表的字段有效性中可以设置字段的默认值,而自由表中无法设置,因此,正确答案为选项A。 【答案】A