资源描述
计算机等级考试二级VF上机题答案
第一套
一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分)
注意:基本操作题为4道SQL题,请将每道题的SQL命令粘贴到SQL1.txt文件,
每条命令占一行,第1道题的命令是第1行,第2道题的命令是第2行,以此类推;
如果某道题没有做相应行为空。
在考生文件夹下完成下列操作:
1. 利用SQL SELECT命令将表stock_sl.dbf复制到stock_bk.dbf;
2.利用SQL INSERT命令插入记录("600028",4.36, 4.60, 5500)到stock_bk.dbf表。
3.利用SQL UPDATE命令将stock_bk.dbf表中"股票代码"为600007的股票"现价"改为8.88。
4.利用SQL DELETE命令删除stock_bk.dbf表中"股票代码"为600000的股票。
本题的主要考核点:
SQL语句的使用。
1、SELE * FROM stock_sl INTO DBF stock_bk
2、INSE INTO stock_bk (股票代码,买入价,现价,持有数量)VALU("600028", 4.36, 4.60, 5500)
3、UPDA stock_bk SET 现价=8.88 WHER 股票代码="600007"
4、DELE FROM stock_bk WHER 股票代码="600000"
三、综合应用(1小题,计30分)
在考生文件夹下有学生成绩数据库XUESHENG3,包括如下所示三个表文件以及相
关的索引文件:
1、XS.DBF(学生文件: 学号 C8,姓名 C8,性别 C2,班级 C5;另有索引文件
XS.IDX,索引键:学号)
2、CJ.DBF(成绩文件: 学号 C8,课程名 C20,成绩 N5.1;另有索引文件
CJ.IDX,索引键:学号)
3、CJB.DBF(成绩表文件:学号 C8,姓名 C8,班级 C5,课程名 C12,成绩
N5.1)
设计一个名为XS3的菜单,菜单中有两个菜单项"计算"和"退出"。程序运行时, 单击"计算"菜单项应完成下列操作:将所有选修了"计算机基础"的学生的"计算机基础"成绩, 按成绩由高到低的顺序填列到成绩表文件CJB.DBF中(事前须将文件中原有数据清空)。单击"退出"菜单项,程序终止运行。
(注:相关数据表文件存在于考生文件夹下)
本题的主要考核点:
结构化查询语言(SQL)中的联接查询、查询的排序、查询的去向等知识
解题思路:
在本题中要想得到所有选修了"计算机基础"的学生的"计算机基础" 成绩及学生的姓名等信息,就需要用到联接查询。因为学生的姓名、班级在表XS.DBF中,而学生的成绩在表CJ.DBF中。而这两个表要联接起来可以通过"学号"字段。
有以下两种联接查询的形式:SELECT XS.学号,姓名,班级,课程名,成绩 FROM XS,CJ WHERE XS.学号=CJ.学号 AND 课程名="计算机基础" 或者 SELECT XS.学号,姓名,班级,课程名,成绩 FROM XS LEFT JION CJ ON XS.学号=CJ.学号 WHERE 课程名="计算机基础"
通过以上的联接查询便得到了所有选修"计算机基础"的学生的"计算机基础"的成绩及学生的姓名等信息。而题中所要求按成绩的降序排序,所以应该在以上SQL语句的基础上加入:ORDER BY 成绩 DESC
将查询所得到的结果放于一个数组变量AFieldsValue中,要用到INTO ARRAY AFieldsValue.至此一个完整的SQL联接查询语句便形成了:SELECT XS.学号,姓名,班级,课程名,成绩 FROM XS,CJ WHERE XS.学号=CJ.学号 AND 课程名="计算机基础" ORDER BY 成绩 DESC INTO ARRAY AFieldsValue
清空CJB.DBF
将tableName中的资料添加到已被清空的CJB.DBF中INSERT INTO CJB FROM ARRAY AFieldsValue
二、简单应用(2小题,每题20分,计40分)
1、在考生文件夹下建立数据库sc2,将考生文件夹下的自由表score2添加进sc2中。根据score2表建立一个视图score_view,视图中包含的字段及score2表相同,但视图中只能查询到积分小于等于1500的信息。 然后利用新建立的视图查询视图中的全部信息,并将结果按积分升序存入表v2。
2、建立一个菜单,包括两个菜单项"文件"和"帮助", "文件"将激活子菜单,该子菜单包括"打开"、"存为"和 "关闭"三个菜单项;"关闭"子菜单项用SET SYSMENU TO DEFAULT命令返回到系统菜单,其他菜单项的功能不做要求。
第1题,本题的主要考核点是视图的建立。
在"项目管理器"中选择一个数据库,选择"本地视图",然后选择"新建"按钮,打开"视图设计器"。选择所有字段,在"筛选"栏内输入条件"积分<=1500",关闭并保存。在数据库设计器中打开视图,用sort on 积分 to v2 命令存入新表。
第2题,本题的主要考核点是菜单的建立。新建菜单可按下列步骤:选择"文件"菜单中的"新建"命令,在"新建"对话框中选择"菜单",单击"新建文件"按钮。在"新建菜单"对话框中选择"菜单"按钮,调出"菜单设计器"。也可用CREATE MENU命令直接调出菜单设计器。在菜单名称中填入"文件"、"帮助","文件"结果为子菜单,单击编辑;在子菜单的菜单名称中输入"打开"、"存为"、"关闭","关闭"结果为命令"SET SYSMENU TO DEFAULT"。
第二套
一、基本操作题(共4小题,第1和2题是7分、第3和4题是8分)
在考生文件夹下完成下列操作(在"成绩管理"数据库中完成):
1. 为"学生"表在"学号"字段上建立升序主索引, 索引名为学号;
2. 为"学生"表的"性别"字段定义有效性规则, 规则表达式为 性别$"男女"出错提示信息是: "性别必须是男或女"。
3. 在"学生"表的"性别"和"年龄"字段之间插入一个"出生日期"字段,数据类型
为"日期型"(修改表结构);
4.用SQL的UPDATE命令将学生"王三风"的出生日期修改为1983年5月1日,并将该
语句粘贴在SQL2.TXT文件中(第一行、只占一行)
本题的主要考核点:
主索引的建立、字段有效规则的建立,表结构的更改,SQL语言的使用。
解题思路:
1.在表设计器中的索引页面建立索引。
2、建立有效性规则在表设计器中的字段选项卡。在"规则"栏中输入"性别$"男女"","提示信息"栏输入"性别必须是男或女"(不要双引号)。
4.SQL语句的用法
UPDA 学生 SET 出生日期={^1983/05/01} WHER 姓名="王三风"
三、综合应用(1小题,计30分)
在考生文件夹下有仓库数据库CK3,包括如下所示两个表文件:
CK(仓库号C(4),城市C(8),面积N(4))
ZG(仓库号C(4),职工号C(4),工资N(4))
设计一个名为ZG3的菜单,菜单中有两个菜单项"统计"和"退出"。程序运行时,单击"统计"菜单项应完成下列操作:检索出所有职工的工资都大于 1220元的职工所管理的仓库信息,将结果保存在wh1数据表(WH1为自由表)文件中,该文件的结构和CK数据表文件的结构一致,并按面积升序排序。单击"退出"菜单项,程序终止运行。(注:相关数据表文件存在于考生文件夹下) 本题主要考核点:
菜单的建立、结构化查询语言(SQL)中的嵌套查询、查询结果的去向等知识。
解题思路:
利用菜单设计器定义两个菜单项,在菜单名称为"统计"的菜单项的结果列中选择"过程",并通过单击"编辑"按钮打开一个窗中来添加"统计"菜单项要执行的命令。在菜单名称为"退出"的菜单项的结果列中选择"命令",并在后面的"选项"列中输入以下退出菜单的命令:SET SYSMENU TO DEFAULT
"统计"菜单项要执行的程序:
首先中打开数据库文件 OPEN DATABASE CK3.DBC
下面我们分析所要用到的查询语句的实现,题面要求"检索出所有职工的工资都大于1220的职工所管理的仓库信息",所以得到满足以上条件的仓库号成为解答本题的关键。"所有职工的工资都大于1220的职工所管理的仓库"这个条件可以将其分解为同时满足以下两个条件的结果"仓库号不存在于职工的工资小于等于1220的职工所管理的仓库号中"并且"仓库号存在于表ZG中",而以上两个条件我们可以利用SQL轻松写出来。所以最后形成的查询语句以下:SELECT * FROM CK WHERE 仓库号 NOT IN (SELECT 仓库号 FROM ZG WHERE 工资<=1220) AND 仓库号 IN (SELECT 仓库号 FROM ZG) INTO TABLE wh1.dbf.后面的INTO TABLE wh1.dbf决定了查询的结果是生成一个wh1.dbf文件。
本题还考对查询的排序和查询的去向进行了考核.可以用ORDER BY order_Item [ASC|DESC]来让查询的结果按某一列或某几列的升序(ASC)或降序(DESC)进行排列。而查询的去向可以通过INTO TABLE strTableName 而直接生成一个文件名为strTableName的.DBF表。
二、简单应用(2小题,每题20分,计40分)
1、根据考生文件夹下的txl表和jsh表建立一个查询query2,查询出单位是"南京大学" 的所有教师的姓名、职称、电话,要求查询去向是表,表名是query2.dbf,并执行该查询。
2、建立表单enterf,表单中有两个命令按钮,按钮的名称分别为cmdin和
cmdout,标题分别为"进入"和"退出"。
第1题,本题的主要考核点是建立查询。
建立查询可以使用“文件”菜单完成,选择文件--新建--查询--新建文件,将txl和jsh添加入查询中,从字段中选择姓名、职称和电话字段,单击查询菜单下的查询去向,选择表,输入表名query2.DBF。最后运行该查询。
第2题,本题的主要考核点是表单的建立。
可以用三种方法调用表单设计器:在项目管理器环境下调用;单击“文件”菜单中的“新建”,打开“新建”对话框,选择“表单”;在命令窗口输入CREATE FORM命令。
打开表单设计器后,在表单控件工具栏上单击“命令按钮”,在表单上放置两个按钮。分别修改其属性Name为cmdin和cmdout,Caption属性为“进入”和“退出”。
第三套
一、基本操作(共四小题,第1和2题是7分、第3和4题是8分
1、请在考生文件夹下建立一个数据库KS4。
2、将考生文件夹下的自由表STUD、COUR、SCOR加入到数据库KS4中。
3、为STUD表建立主索引,索引名和索引表达式均为学号
为COUR表建立主索引,索引名和索引表达式均为课程编号
为SCOR表建立两个普通索引,其中一个索引名和索引表达式均为学号;另一个索引名和索引表达式均为课程编号
4、在以上建立的各个索引的基础上为三个表建立联系。
本题的主要考核点:
数据库的建立、将自由表添加到数据库中、主索引和普通索引的建立,为已建立索引的表建立联系。
解题思路:
1.建立数据库的常用方法有三种:
在项目管理器中建立数据库;
通过"新建"对话框建立数据库;
使用命令交互建立数据库,命令为: CREATE DATABASE [DatabaseName|?]
2.将自由表添加到数据库中,可以在项目管理器或数据库设计器中完成。打开数据库设计器,在"数据库"菜单中或在数据库设计器上单击右键弹出的菜单中选择"添加表",然后在"打开"对话框中选择要添加到当前数据库的自由表。还可用ADD TABLE命令添加一个自由表到当前数据库中。
3.在STUD表设计器中的索引选项卡建立索引名和索引表达式为学号的主索引。分别为COUR和SCOR建立主索引和普通索引。
4.在数据库设计器中建立三个表的联系。在数据库设计器中,将选中STUD表中的主索引"学号",按住鼠标拖动到SCOR表的普通索引"学号"上。
用同样的方法可以建立COUR表和SCOR表的"课程编号"之间的联系。
三、综合应用(1小题,计30分)
在考生文件夹下有工资数据库WAGE3,包括数据表文件:ZG(仓库号C(4),
职工号C(4),工资N(4))
设计一个名为TJ3的菜单,菜单中有两个菜单项"统计"和"退出"。
程序运行时,单击"统计"菜单项应完成下列操作:检索出工资小于或等于本仓库职工平均工资的职工信息,并将这些职工信息按照仓库号升序,在仓库号相同的情况下再按职工号升序存放到EMP1(EMP1为自由表)文件中,该数据表文件和ZG数据表文件具有相同的结构。单击"退出"菜单项,程序终止运行。
(注:相关数据表文件存在于考生文件夹下)
本题主要考核点:
菜单的建立、结构化查询语言(SQL)中的联接查询、查询的排序、临时表的概念、查询结果的去向等知识。
解题思路:
利用菜单设计器定义两个菜单项,在菜单名称为"统计"的菜单项的结果列中选择"过程",并通过单击"编辑"按钮打开一个窗中来添加"统计"菜单项要执行的命令。在菜单名称为"退出"的菜单项的结果列中选择"命令",并在后面的"选项"列中输入以下退出菜单的命令:SET SYSMENU TO DEFAULT
"统计"菜单项要执行的程序:
首先是打开数据库文件OPNE DATABASE WAGE3.DBC我们应该得到每一个仓库的职工平均工资,并将结果放在一个临时的表CurTable中.利用以下语句可以实现:SELECT 仓库号,AVG(工资) AS AvgGZ FROM ZG GROUP BY 仓库号 INTO CURSOR CurTable.这样就生成了一个表名为CurTable的临时表。表中有两个字段:仓库号,AvgGZ,内容为每一个仓库的仓库号和所对应的职工的平均工资。
有了临时表CurTable后我们可以将其及ZG进行联接查询,我们这里联接查询的目的不是为了得到临时表中的内容做为结果的一部分,而是要用其中的字段AvgGZ做为查询的条件.我们便可以得到"工资小于或低于本仓库职工平均工资的职工信息"的查询:SELECT ZG.* FROM ZG,CurTable WHERE ZG.仓库号=CurTable.仓库号 AND ZG.工资<CurTable.AvgGZ.利用ORDER BY子句来实现查询结果的排序:ORDER BY 仓库号,职工号;利用INTO TABLE 子句可以实现查询结果的去向:INTO TABLE EMP1.完整的查询语句如下:SELECT ZG.* FROM ZG,CurTable WHERE ZG.仓库号=CurTable.仓库号 AND ZG.工资<CurTable.AvgGZ ORDER BY 仓库号,职工号 INTO TABLE EMP1。
二、简单应用(2小题,每题20分,计40分)
1、在考生文件夹中有一个数据库STSC,其中有数据库表STUDENT、SCORE和
COURSE
利用SQL语句查询选修了"网络工程"课程的学生的全部信息,并将结果按学号降序存放在 NETP.DBF文件中(库的结构同STUDENT,并在其后加入课程号和课程名字段)。
2、在考生文件夹中有一个数据库STSC,其中有数据库表STUDENT,使用一对多报表向导制作一个名为CJ2的报表,存放在考生文件夹中要求:选择父表STUDENT 表中学号和姓名字段,从子表SCORE中选择课程号和成绩,排序字段选择学号(升序),报表式样为简报式,方向为纵向。报表标题为"学生成绩表"。
第1题,本题的主要考核点是SQL语句的查询。
SELECT Student.*, Score.课程号, Course.课程名;
FROM stsc!student INNER JOIN stsc!score;
INNER JOIN stsc!course ;
ON Score.课程号 = Course.课程号 ;
ON Student.学号 = Score.学号;
WHERE AT("网络工程",Course.课程名) > 0;
ORDER BY Student.学号 desc;
INTO TABLE netp.dbf
第2题,本题的主要考核点是使用报表向导制作报表。
启动报表向导可在"文件"菜单中选择"新建"或者单击工具栏上的"新建"按钮,打开"新建"对话框,文件类型选择报表,单击向导按钮。或者在"工具"菜单中选择"向导"子菜单,选择
"报表",或直接单击工具栏上的"报表向导"图标按钮。然后按照向导提示操作即可。
第四套
一、基本操作题(共四小题,第1和2题是7分、第3和4题是8分)
1、请在考生文件夹下建立一个项目WY。
2、将考生文件夹下的数据库KS4加入到新建的项目WY中去。
3、利用视图设计器在数据库中建立视图 NEW_VIEW,视图包括GJHY表的全部字段(顺序同GJHY中的字段)和全部记录。
4、从表HJQK中查询"奖级"为一等的学生的全部信息(HJQK表的全部字段),并按分数的降序存入存入新表NEW1中。
本题的主要考核点:
项目的建立、将数据库添加到项目中、视图的建立、查询并存入新表。
解题思路:
1.建立项目WY
创建项目可用“文件”菜单中的“新建”命令。
2.将数据库加入到项目中:
在项目管理器的“数据”选项卡选择数据库,单击“添加”,在“打开”对话框中选择要添加的数据库
3.在新建对话框中、项目管理器中、或用CREAT VIEW命令打开视图设计器,建立一个视图。将GJHY表添加到视图中,并将全部字段添加入视图。 不做任何筛选,则视图包括全部记录。最后将视图命名为NEW_VIEW。
4.用SQL语句
select * from hjqk.dbf where 奖级="一等";
into table new1 order by 分数 desc
可完成此查询。
也可建立一个查询完成。在菜单中选择文件--新建--查询--新建文件,在筛选栏中选择字段名为“hjqk.奖级”,条件为“=”,实例栏内输入“一等”,排序选择“分数”降序,并将查询去向设为表NEW1。注意NEW1要保存到考生文件夹下。最后运行此查询即可。
二、简单应用(2小题,每题20分,计40分)
1、在考生文件夹下,有一个数据库CADB,其中有数据库表ZXKC和ZX。
表结构如下:
ZXKC(产品编号,品名,需求量,进货日期)
ZX(品名,规格,单价,数量)
在表单向导中选取一对多表单向导创建一个表单。要求:从父表zxkc中选取字段产品编号和品名,从子表zx中选取字段规格和单价,表单样式选取 "阴影式" ,按钮类型使用 "文本按钮" ,按产品编号升序排序,表单标题为"照相机",最后将表单存放在考生文件夹中,表单文件名是form2。
2、在考生文件夹中有数据库CADB,其中有数据库表ZXKC和ZX。建立单价大于等于800,按规格升序排序的本地视图 CAMELIST,该视图按顺序包含字段产品编号、品名、规格和单价,然后使用新建立的视图查询视图中的全部信息,并将结果存入表v_camera。
第1题,本题的主要考核点是使用表单向导制作表单。
启动表单向导可在“文件”菜单中选择“新建”或者单击工具栏上的“新建”按钮,打开“新建”对话框,文件类型选择表单,单击向导按钮。或者在“工具”菜单中选择“向导”子菜单,选择“表单”,或直接单击工具栏上的“表单向导”图标按钮。在“向导选取”对话框中选择“一对多表单向导”。然后按照表单向导操作即可。
第2题,本题的主要考核点是建立视图。
在“项目管理器”中选择一个数据库,选择“本地视图”,然后选择“新建”按钮,打开“视图设计器”。将zxkc和zx添加到视图中,选择字段产品编号、品名、规格和单价,在“筛选”栏内输入条件“单价>=800”,关闭并保存。在数据库设计器中打开视图,用copy to v_camera命令或在“文件”菜单中选择“导出”,将结果存入新表v_camera。
三、综合应用(1小题,计30分)
在考生文件夹下有仓库数据库CHAXUN3包括三个表文件:
ZG(仓库号 C(4),职工号 C(4),工资 N(4))
DGD(职工号 C(4),供应商号 C(4),订购单号 C(4),订购日期 D,总金额 N(10))GYS(供应商号 C(4),供应商名 C(16),地址 C(10))
设计一个名为CX3的菜单,菜单中有两个菜单项"查询"和"退出"。
程序运行时,单击"查询"应完成下列操作:检索出工资多于1230元的职工向北京的供应商发出的订购单信息,并将结果按总金额降序排列存放在ord1文件 (和DGD文件具有相同的结构,ord1为自由表)中。单击"退出"菜单项,程序终止运行。
(注:相关数据表文件存在于考生文件夹下)
本题主要考核点:
菜单的建立、结构化查询语言(SQL)中的嵌套查询、查询的排序、查询结果的去向等知识
解题思路:
利用菜单设计器定义两个菜单项,在菜单名称为"查询"的菜单项的结果列中选择"过程",并通过单击"编辑"按钮打开一个窗口来添加"查询"菜单项要执行的命令。在菜单名称为"退出"的菜单项的结果列中选择"命令",并在后面的"选项"列的中输入以下退出菜单的命令:SET SYSMENU TO DEFAULT
"查询"菜单项要执行的程序:
首先打开数据库 Open database CHAXUN3.dbc
我们可以通过下面的查询得到工资多于1230的所有职工的职工号 SELECT 职工号 FROM ZG WHERE 工资>1230
可以通过下面的查询得到地址在北京的所有供货商的供货商号 SELECT 供货商号 FROM GYS WHERE 地址="北京"
而题面所要求的正是同时满足以上两个条件的订购单信息,也就是职工号满足第一个条件上,可用 职工号 IN (SELECT 职工号 FROM ZG WHERE 工资>1230) 来实现;供货商号满足第二个条件,可用 供货商号 IN (SELECT 供货商号 FROM GYS WHERE 地址="北京") 来实现。因此可得到满足条件的订购单的SQL查询为:SELECT * FROM DGD WHERE 职工号 IN (SELECT 职工号 FROM ZG WHERE 工资>1230) AND 供货商号 IN (SELECT 供货商号 FROM GYS WHERE 地址="北京") ORDER BY 总金额 DESC INTO TABLE ord1
本题还考对查询的排序和查询的去向进行了考核.可以用ORDER BY order_Item [ASC|DESC]来让查询的结果按某一列或某几列的升序(ASC)或降序(DESC)进行排列。而查询的去向可以通过INTO TABLE strTableName 而直接生成一个文件名为strTableName的.DBF表。
第五套
一、基本操作题(共四小题,第1和2题是7分、第3和4题是8分)
1、打开数据库PROD_M及数据库设计器,其中的两个表的必要的索引已经建立,为这两个表建立永久性联系
2、设置CATEGORY表中"种类名称"字段的默认值为:"饮料"。
3、为PRODUCTS表增加字段:优惠价格N(8,2)。
4、如果所有商品的优惠价格是在进货价格基础上减少12%,计算所有商品的优惠价格。
本题的主要考核点:
为已建立索引的表建立联系、设置字段的默认值、字段的添加、字段的替换。
解题思路:
1.建立两个表的联系。在父表中选中主索引,按住鼠标拖动至子表相应的普通索引上,释放鼠标,联系即已建立。
2.在表设计器中,选中"种类名称"字段,在"字段有效性"中的默认值中填入"饮料",单击确定。
3.增加字段的方法:
打开PRODUCTS表表设计器,将光标移动到最后的空字段格中,输入新的字段名、字段类型及长度。
4.可以使用BROWSE浏览表,然后在菜单"表"中选择"替换字段",字段为"优惠价格","替换为"的表达式为"Products.进货价格 *0.88",作用范围ALL。
也可用命令
REPLACE ALL 优惠价格 WITH 进货价格*0.88
二、简单应用(2小题,每题20分,计40分)
1、在考生文件夹中有一个数据库GCS,其中GONGCH表结构如下:
GONGCH(编号C(4),姓名C(10),姓别C(2),工资N(7,2),年龄N(2),职称C(10))现在要对GONGCH表进行修改,指定编号为主索引,索引名和索引表达式均为编号;指定职称为普通索引,索引名和索引表达式均为职称;年龄字段的有效性规则在25至65之间(含25和65),默认值是45。
2、在考生文件夹中有数据库GCS,其中有数据库表GONGCH。在考生文件夹下设计一个表单,该表单为GCS库中GONGCH表窗口式输入界面,表单上还有一个名为cmdCLOSE的按钮,标题名为 "关闭",点击该按钮,使用 ThisForm.release退出表单。最后将表单存放在考生文件夹中。,表单文件名是C_FORM。
提示:在设计表单时,打开GCS数据库设计器,将GONGCH表拖入到表单中就实现了GONGCH 表的窗口式输入界面,不需要其他设置或修改。
第1题,本题的主要考核点是建立索引和有效性规则。
建立索引在表设计器中的索引选项卡,建立有效性规则在表设计器中的字段选项卡。在"规则"栏中输入"年龄>=25 AND 年龄<=65","默认值"栏输入"45"(不要双引号)。
第2题,本题的主要考核点是表单的设计。
可以用三种方法调用表单设计器:在项目管理器环境下调用;单击"文件"菜单中的"新建",打开"新建"对话框,选择"表单";在命令窗口输入CREATE FORM命令。
打开表单设计器,在表单控件工具栏上单击"命令按钮",在表单上放置一个按钮。修改其属性Name为cmdclose,Caption属性为"关闭"。双击按钮,在打开的程序窗口输入代码"ThisForm.release"。设计窗口式输入界面如提示,最后将表单保存。
三、综合应用(1小题,计30分)
在考生文件夹下有仓库数据库GZ3包括两个表文件:
ZG(仓库号C(4),职工号C(4),工资N(4))
DGD(职工号C(4),供应商号C(4),订购单号 C(4),订购日期D,总金额N(10))
首先在GZ3库中建立工资文件数据表:GJ3(职工号C(4),工资N(4))设计一个名为YEWU3的菜单,菜单中有两个菜单项"查询"和"退出"。
程序运行时,单击"查询"应完成下列操作:检索出及供应商S7、S4和S6都有业务联系的职工的职工号和工资,并按工资降序存放到所建立的GJ3文件中。单击"退出"菜单项,程序终止运行。
(注:相关数据表文件存在于考生文件夹下)
本题主要考核点:
表结构的建立、菜单的建立、结构化查询语言(SQL)中的联接查询、查询的排序、临时表的概念、查询结果的去向、HAVING子句、聚合函数COUNT()等的使用等知识。
解题思路:
第一步:利用菜单设计器定义两个菜单项,在菜单名称为"查询"的菜单项的结果列中选择"过程",并通过单击"编辑"按钮打开一个窗口来添加"查询"菜单项要执行的命令。在菜单名称为"退出"的菜单项的结果列中选择"命令",并在后面的"选项"列中输入以下退出菜单的命令:SET SYSMENU TO DEFAULT
第二步:在单击"计算"菜单项后面的"编辑"按钮所打开的窗口中添加如下的过程代码:
SET TALK OFF &&在程序运行时关闭命令结果的显示
OPEN DATABASE GZ3 &&打开数据库文件GZ3
USE DGD &&打开表DGD
CREATE TABLE GJ3(职工号 C(4),工资 N(4))
SELECT 职工号 FROM DGD WHERE 供应商号 IN ("S4","S6","S7");
GROUP BY 职工号;
HAVING COUNT(DISTINCT 供应商号)=3;
INTO CURSOR CurTable
&&SELECT SQL语句中的GROUP BY 子句可以用来指定结果集的组,
&&要得到"供应商号"是 "S4"、"S6"或"S7"的订购单,同时以订购单所在的职工员进行分组
&&并且保证每个分组里面供应商号有三个(也就是三个供应商都应有订购单);这样就得到了满
&&足条件的职工号,将返回的结果集放于一个临时表CurTable中:INTO CURSOR CurTable
SELECT ZG.职工号,工资 FROM ZG,CurTable WHERE ZG.职工号=CurTable.职工号;
ORDER BY 工资 DESC;
INTO ARRAY AFieldsValue
&&将生成的临时表及DGD表进行联接查询,便可以得到满足条件的职工号和工资
&&返回的结果集放入数组AFieldsValue中:INTO ARRAY AFieldsValue
INSERT INTO GJS FROM ARRAY AFieldsValue
&&在新建的表中追加记录
CLOSE ALL
&&关闭打开的文件
SET TALK ON
&&恢复命令结果的显示设置
第三步:以文件名YEWU3.MNX保存菜单源文件,并生成菜单,运行菜单。
第六套
一、基本操作题(共四小题,第1和2题是7分、第3和4题是8分)
1、在考生文件夹下建立数据库KS7;并将自由表SCOR加入数据库中。
2、按下面给出的表结构。给数据库添加表STUD
字段 字段名 类型 宽度 小数
1 学号 字符型 2
2 姓名 字符型 8
3 年龄 数值型 2 0
4 性别 字符型 2
5 院系号 字符型 2
3、为表STUD建立主索引,索引名为学号,索引表达式为学号
为表SCOR建立普通索引,索引名为学号,索引表达式为学号
4、STUD表和SCOR表必要的索引已建立,为两表建立永久性的联系。
本题的主要考核点:
数据库的建立、将自由表添加到数据库中、在数据库中建立新表、主索引和普通索引的建立、为已建立索引的表建立联系
解题思路:
1.建立数据库的常用方法:
在项目管理器中建立数据库;
通过“新建”对话框建立数据库;
使用命令交互建立数据库,命令为: CREATE DATABASE [DatabaseName|?]
将自由表添加到数据库中,可以在项目管理器或数据库设计器中完成。在数据库设计器中可以从“数据库”菜单或在数据库设计器上单击右键弹出的菜单中选择“添加表”,然后在“打开”对话框中选择要添加到当前数据库的自由表。还可用ADD TABLE命令添加一个自由表到当前数据库中。
2.打开数据库设计器,在“数据库”菜单中或在数据库设计器上单击右键弹出的菜单中选择“新建表”,新建表并输入字段。
3.在表设计器中的索引页面建立索引。
4.建立两个表的联系:在父表中选中主索引,按住鼠标拖动至子表相应的普通索引上,释放鼠标,联系即已建立。
二、简单应用(2小题,每题20分,计40分)
1、在考生文件夹中有一个学生数据库STU,其中有数据库表STUDENT存放学生信
息,使用菜单设计器制作一个名为STMENU的菜单,菜单包括"数据操
作"和"文件"两个菜单栏。
每个菜单栏都包括一个子菜单。菜单结构如下:
数据操作
数据输出
文件
保存
退出
其中:
数据输出子菜单对应的过程完成下列操作:打开数据库STU,使用SQL的SELECT语句查询数据库表STUDENT 中所有信息,然后关闭数据库。退出菜单项对应的命令为SET SYSMENU TO DEFAULT,使之可以返回到系统菜单。保存菜单项不做要求。
2、在考生文件夹中有一个数据库SDB,其中有数据库表STUDENT2、SC和
COURSE2。三个表如下所示:
STUDENT2(学号,姓名,年龄,性别,院系编号)
SC(学号,课程号,成绩,备注)
COURSE2(课程号,课程名,先修课号,学分)
用SQL语句查询"计算机软件基础"课程的考试成绩在85分以下(含85分)的学生的全部信息并将结果按学号升序存入 NOEX.DBF文件中。(库的结构同STUDENT2,并在其后加入成绩字段)
第1题,本题的主要考核点是菜单的制作和数据库基本命令。
新建菜单可按下列步骤:选择"文件"菜单中的"新建"命令,在"新建"对话框中选择"菜单",单击"新建文件"按钮。在"新建菜单"对话框中选择"菜单"按钮,调出"菜单设计器"。也可用CREATE MENU命令直接调出菜单设计器。在菜单名称中填入"数据操作",结果为子菜单,单击编辑;在子菜单的菜单名称中输入"数据输出",结果为过程。在过程中输入下列命令:
OPEN DATA STU
SELECT * FROM STUDENT
CLOSE ALL
"文件"菜单同上,其中"退出"菜单对应结果为命令,命令为SET SYSMENU TO DEFAULT
第2题,本题的主要考核点是SQL语句的查询。查询如下。
SELECT Student2.*, Sc.成绩;
FROM sdb!student2 INNER JOIN sdb!sc;
INNER JOIN sdb!course2 ;
ON Sc.课程号 = Course2.课程号 ;
ON Student2.学号 = Sc.学号;
WHERE Course2.课程名 IN ("计算机软件基础
展开阅读全文