计算机等级考试:二级VFP机试第18套

计算机等级考试:二级VFP机试第18套,第1张

计算机等级考试:二级VFP机试第18套,第2张

18套

一、基本操作题(共四个子题,1、2题7分,3、4题8分)


在考生文件夹下完成以下操作:


1。打开“订单管理”数据库,并将表order_list添加到数据库中。


2。在“订单管理”数据库中建立order_detail表。表格结构描述如下:


订单号字符类型(6)


设备号的字符类型(6)


设备名称的字符类型(16)


单价浮动型(10.2)


数量整数


3。为新建立的order_detail表建立一个公共索引,索引名和索引表达式都是


是“订单号”。


4。在表order_list和表order_detail之间建立永久连接(通过“订单号”字段)。


本问题主要评估点:


在数据库中添加自由表、建立表结构、建立两个表之间的永久连接等知识点。


解决这个问题的思路:


第一步:打开考生文件夹下的“订单管理”数据库。


第二步:打开数据库菜单,选择“添加表格(A)”。在弹出的“打开”对话框中,选择考生文件夹下的order_list表,然后点击“确定”


第三步:再次打开数据库菜单选择“新建表(n)”,在弹出的对话框中选择“新建表”,在弹出的“创建”对话框中选择考生文件夹,在输入表名中填写“order_detail”,然后点击保存。


第四步:根据题目要求,在弹出的表格设计器中输入各个字段的定义,选择“索引”页签,在索引列中填写“序号”,在索引类型列中选择“通用索引”,在索引表达式列中填写“序号”,点击“确定”保存表格结构。


第五步:在order_list中点击选择主索引“订单号”,拖动到order_detail的“订单号”索引上,鼠标箭头会变成一个小矩形;释放鼠标时,关系符号出现,从而可以建立永久关系。


二。简单应用(2道小题,每题20分,40分)


在考生文件夹下完成下面的简单申请:


1。将order_detail1表中的所有记录追加到order_detail表中,然后使用SQL


SELECT语句完成查询:列出所有采购订单的订单号、订单日期、设备号、设备。


名称和总金额(升序订单号、相同订单号和降序订单号)


并将结果存储在结果表中(订单号、订单日期和总金额来自


order_list表,设备号和设备名取自order_detail表)。


2。打开modi1.prg命令文件,其中包含三个SQL语句,每个语句都有一个。


有错误,请改正(注意:错误发生的地方直接改正,不能改SQL。


语句的结构和SQL短语的顺序)。


本问题主要评估点:


Query SELECT查询、join查询、查询排序、查询结果的目的地以及SQL中SELECT中短语的正确使用。


解决问题的思路:


第一项:将order_detail1中的所有记录追加到order_detail中。要将一个表中的所有记录追加到另一个表中,请使用APPEND FROM命令。首先打开order_DETAIL:使用order _ detail。在APPEND FROM之后,是要追加到order _ detail的表名,order_detail:使用ORDER_DETAIL 1。查询表中的数据需要SELECT命令。要查询的数据来自ORDER_DETAIL和order_list表。将它们放在from之后,用逗号分隔,并为它们分配别名DetAlias和LisAlias分别是。因为它是要在连接查询中指示的查询条件,所以连接条件是详细的。订单号=LisAlias。订单号应放在WHERE短语之后,结果集应按照订单编号升序和订单金额降序排序,因此:订单编号、总金额DESC应放在ORDER BY短语之后,结果集应存储在结果表中,因此:结果应放在INTO表之后。由于查询结果并不都是属性,所以需要指明结果的属性,而且顺序号在两个表中都存在,所以需要指明这个属性来自哪个源表(这里用表的别名代替)。这形成了一个完整的查询语句:


选择LisAlias。订单编号、订单日期、设备编号、设备名称、总金额;


FROM ORDER_LIST LisAlias,ORDER _ DETAIL DetAlias


其中LisAlias。订单号=DetAlias。订单编号;


ORDER BY LisAlias。订单编号,总金额desc;


到表结果中


问题二:& &所有设备单价增加5元。


用单价+5更新order_detail1设置单价


& & SQL语句和FoxPro命令混淆了。SQL语句中的UPDATE可以更新记录的内容,而不是


&&用WITH代替等号。所以应该改成:更新ORDER_DETAIL1设置单价=单价+5。


&&计算每台设备的平均单价。


从ORDER _ detail 1 ORDER BY device number中选择设备号,AVG(单价)作为平均价格,放入光标lsb


&&这里,分组子句GROUP BY与排序子句ORDER BY混淆了。这里,应该使用分组子句&&GROUP BY,而不是排序子句ORDER BY。


&&查询平均价格低于500的记录


SELECT * FROM lsb平均价格< 500


& & WHERE子句用于表示SQL查询语句中的条件,与FoxPro中的FOR命令不同。

三。综合应用(1小题,30分)


在做这个问题之前,先确定在基本操作中已经正确建立了order_detail表。简单地说


该记录已成功追加到应用程序的order_detail表中。


修改order_detail表中的单价时,应根据该表的“单价”和“数量”字段进行修改。


在order_list表的总金额字段中,某些order _ list记录的总金额字段值不正确。


的确,请写一个程序把这些记录挑选出来,存储在一个名为od_mod的表中。


(与order_list表结构相同,是自己建立的),然后根据order_detail表的“单


价格”和“数量”字段修改od_mod表的总金额字段(注意可能对应多少条od_mod记录


order_detail记录),最后要求od_mod表的结果按总金额升序排序。


程序最终保存为prog1.prg


本问题主要评估点:


程序的建立方法、程序中循环结构的使用、SQL查询语句的使用、记录的修改方法等知识点。


解决这个问题的思路:


第一步:在VisualFoxPro主窗口中按Ctrl+N,弹出“新建”对话框。在“文件类型”中选择“程序”,然后点击“新建文件”按钮,会弹出程序编辑窗口。


第二步:在弹出窗口中输入以下代码:


开启通话


打开安全


&&计算每个订单的总金额。


选择订单号,SUM(单价*数量)作为总金额;


FROM ORDER _ DETAIL;


按订单号分组;


转换为光标表格


&&首先,你应该得到每笔订单的总金额。由于同一订单包含多种商品,因此需要


&&同一订单的总金额应该是同一订单包含的商品的总和,这就使得SUM函数。


&&它的分组基于这样一个事实,即订单号放在ORDER BY子句之后,结果集放在一个临时表CurTable中。


&&将临时表名放在INTO CURSOR子句之后。


SELECT ORDER_LIST。*;


FROM ORDER_LIST,CurTable


WHERE ORDER_LIST。订单编号=可简化表格。订单编号和订单列表。可简化的总金额。总金额;


到表OD_MOD中


&&根据上面得到的临时表中每个订单的总金额,得到order_list中的错误记录。


&&因为您需要在查询中使用另一个表,所以您需要使用查询。将它们放在FROM子句中。


&&之后,两个表名用逗号分隔;将连接条件和查询条件放在WHERE子句中。


& ORDER _ LIST。订单编号=可简化表格。订单编号和订单列表。可简化的总金额。总数


&&查询的结果集应该放在永久表OD_MOD中,OD_MOD应该放在INTO TABLE子句之后。


使用OD_MOD


DO WHILE NOT EOF() &&遍历OD_MOD中的每个记录。


选择可简化表格。CurTable中的总金额;


在可简化的地方。订单编号=OD_MOD。订单编号;


放入数组AFieldsValue


&&从临时表CurTable中获取与当前记录具有相同订单号的订单的正确总金额。


&&将条件curtable . order number = od _ mod . order number放在WHERE子句后;


&&将结果放入数组变量AFieldsValue中。


替换为字段值的总量


&&用正确的总金额替换原始总金额。


跳过


ENDDO


全部关闭


Mr & &成为临时手表。


SELECT * FROM OD_MOD ORDER BY总金额;


转换为光标表格


&&然后从临时表生成表并覆盖原始表。


SELECT * FROM curt TABLE INTO TABLE OD _ MOD


关闭通话


关闭安全


第三步:点击工具栏“保存”按钮,将程序文件保存在考生文件夹下,文件名为prog1.prg,运行程序。

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » 计算机等级考试:二级VFP机试第18套

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情