计算机等级考试二级VFP机试试题18

文章作者 100test 发表时间 2007:03:10 18:00:27
来源 100Test.Com百考试题网


第十八套

一、基本操作题(共四小题,第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语句完成查询:列出所有订购单的订单号、订购日期、器件号、器件

名和总金额(按订单号升序,订单号相同再按总金额降序)

并将结果存储到results表中(其中订单号、订购日期、总金额取自

order_list表,器件号、器件名取自order_detail表)。

2. 打开modi1.prg命令文件,该命令文件包含3条SQL语句,每条SQL语句中都有

一个错误,请改正之(注意:在出现错误的地方直接改正,不可以改变SQL

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

本题主要考核点:

SQL中的查询SELECT查询,联接查询,查询的排序,查询的结果的去向和SELECT中的短语的正确使用。

解题思路:

第一小题:将order_detail1中的全部记录追加到order_detail中,要将一个表的所有记录追加到另一个表中使用APPEND FROM 命令,首先打开order_detail:USE ORDER_DETAIL,在APPEND FROM的后面是要追加到order_DETAIL的表名,这里是order_DETAIL1。查询表中的数据要用到SELECT命令,要查询的数据来源于ORDER_DETAIL和order_list表,将它们置于FROM的后面,并用逗号隔开,并分别为它们指定一个别名DetAlias和 LisAlias;由于是联接查询要指明查询的条件,将联接条件DetAlias.订单号=LisAlias.订单号放在WHERE短语的后面,同时要对结果集按照订单号的升序和总金额的降序进行排序,所以要将:订单号,总金额 DESC放在ORDER BY 短语的后面,结果集要存储到results表中,所以要将:results放在INTO TABLE 后面。由于查询的结果不是所有的属性,所以需要指明结果的属性,并且订单号在两个表中都存在,所以要特别指定此属性来自那一个源表(这里用表的别名来代替)。这样就形成了一个完整的查询语句:

SELECT LisAlias.订单号,订购日期,器件号,器件名,总金额.

FROM ORDER_LIST LisAlias,ORDER_DETAIL DetAlias.

WHERE LisAlias.订单号=DetAlias.订单号.

ORDER BY LisAlias.订单号,总金额 DESC.

INTO TABLE RESULTS

第二题:&.&.所有器件的单价增加5元

UPDATE order_detail1 SET 单价 WITH 单价 5

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

&.&.用WITH,而是用等号。所以应该改为:UPDATE ORDER_DETAIL1 SET 单价=单价 5

&.&.计算每种器件的平均单价

SELECT 器件号,AVG(单价) AS 平均价 FROM order_detail1 ORDER BY 器件号 INTO CURSOR lsb

&.&.这里将分组的子句GROUP BY与排序的子句ORDER BY相混淆了,这里应该用分组的子句&.&.GROUP BY来代替排序的子句ORDER BY子句。

&.&.查询平均价小于500的记录

SELECT * FROM lsb FOR 平均价 < 500

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


相关文章


[二级VB试题天天练]对象概念
计算机等级考试二级VFP机试试题20
计算机等级考试二级VFP机试试题18
[二级VB试题天天练]对象的方法
[二级VB试题天天练]工程文件的扩展名
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛