1、国家二级 VF机试模拟试卷 236及答案与解析 一、基本操作题( 30分) 1 在考生文件夹下完成如下基本操作; (1)从数据库 stock中移去表 stock_fk (不是删除 )。 (2)将自由表 stock name添加到数据库中。 (3)为表 stock s1建立一个主索引,索引名和索引表达式均为 “股票代码 ”。 (4)为 stock name表的股票代码字段设置有效性规则, “规则 ”是: left(股票代码,1)=“6“,错误提示信息是: “股票代码的第一位必须是 6“。 二、简单应用题( 40分) 2 (1)将 order detail1表中的全部记录追加到 order det
2、ail表中,然后用 SQL SELECT语句完成查询:列出所有订购单的 “订单号 ”、 “订购日期 ”、 “器件号 ”、 “器件名 ”和“总金额 ”(按 “订单号 ”升序, “订单号 ”相同再按 “总金额 ”降序 ),并将结果存储到results表中 (其中 “订单号 ”、 “订购日期 ”、 “总金额 ”取自 order_list表, “器件号 ”、“器件名 ”取自 order_detail表 )。 (2)打开 modil prg命令文件,该命令文件包含 3条 SQL语句,每条 SQL语句中都有一个错误,请改正 (注意;在出现错误的地方直接改正,不可以改变 SQL语句的结构和 SQL短语的顺序
3、 )。 三、综合应用题( 30分) 3 根据 “成绩管理 ”数据库中的 “学生 ”、 “课程 ”和 “选课 ”三个表建立一个名为view_grade的视图,该视图包含 “学号 ”、 “姓名 ”、 “课程名称 ”和 “成绩 ”四个字段,并要求先按 “学号 ”升序排序、在 “学号 ”相同的情况下按 “课程名称 ”降序排序。 建立一个表单 grade_list (控件名为 form1,文件名为 grade_list),表单中含有一个表格 (名称为 grdView_grade) 控件,该表格控件的数据源是前面建立的视图 view_grade(直接使用拖拽的方法 );然后在表格控件下面添加一个命令按钮
4、(名称为 Command1),该命令按钮的标题为 “退出 ”,要求单击按钮时关闭表单。 注意:完成表单设计后要运行表单的所有功能。 国家二级 VF机试模拟试卷 236答案与解析 一、基本操作题( 30分) 1 【正确答案】 (1)在命令窗口输入命令: MODIFYDATABASE stock,打开数据库设计器,右击数据库设计器中的 stock_fk表,选 择 “删除 ”快捷菜单命令,在弹出的对话框中单击 “移去 (R)”按钮,将表 stock_fk从数据库 stock中移出。 (2)右击 stock数据库设计器的空白处,选择 “添加表 ”快捷菜单命令,在弹出的 “打开 ”对话框中,将考生文件夹
5、下的 stock name表添加到 “stock”。数据库中。 (3)右击数据库设计器中的表 stock s1,选择 “修改 ”快捷菜单命令,弹出表设计器,选择表设计器的 “索引 ”选项卡,在索引名列中填入 “股票代码 ”,在索引类型列中选择 “主索引 ”,在索引表达式列中填入 “股票代码 ”,单击 “确定 ”按钮以保存表结构。 (4)根据 3小题操作步骤,打开 stock name的表设计器,选中 “股票代码 ”字段,并在 “字段有效性 ”的; “规则 ”文本框中输入: left(股票代码 ,1)=“6“,在 “信息 ”文本框中输入 ”股票代码的第一位必须是 6“(双引号不可少 ),单击 “
6、确定 ”按钮来保存对表结构的修改。 【试题解析】 本大题主要考查的是数据库和数据库表之间的关系。添加和移出数据表,都是在数据库中进行,在移出数据库表时需要注意的是,如果仅将表移出数据库,则选择移出,若要从磁盘上彻底删除该表,则应选择 “删除 ”。 建立表索引和字段有效性规则,可以在表设计器中完成。 二、简单应用题( 40分) 2 【正确答案】 (1)步骤 1:在命令窗口执行命令: SELECT * FROM order_detail1 INTO ARRAY temp INSERT INTO order_detail FROM ARRAY temp 将 detaill表中的记录全部复制到 det
7、ail表中。 步骤 2:在命令窗口执行如下 SQL命令语句完成查询: SELECT order_list订单号, order_list订购 日 期, order_detail器 件 号, order_detail器件名, order_list总金额; FROM 订货管理 !order_list INNER JOIN订货管理 !order_detail; ON order_list订单号 =order detail订单号; ORDER BY order_list订单号, order_list总金额 DESC; 工 NT() TABLE results dbf (注意:以上 SQL语句是根据查询文
8、件生成的,大家也可以通过查询设计器完成本题操作。 ) (2)步骤 1:在命令窗口执行命令: MODIFY COMMANDmodil,打开modil程序文件,文件中的命令代码如下: & 所有器件的单价增加 5元 UPDATE order_detail1 SET单价 WITH单价 +5 &计算每种器件的平均单价 SELECT 器件号, AVG(单价 ) AS 平均价 FROM order_detail1 ORDER BY器件号 INTO CURSOR 1sb &查询平均价小于 500的记录 SELECT*FROM 1sb FOR平均价 500 修改程序中的错误行,修改后的程序如下: UPDATE
9、order_detail1 SET单价 =单价 +5 &UPDATE语句中赋值是通过 “=”号,而不是 WITH SELECT器件号, AVG(单价 ) AS平均价 FROM order_detaill GROUP BY器件号 INTO CURSOR 1sb &GROUP BY短语才是分组短语,而 ORDER BY短语是用来对查询结果进行排序的 SELECT*FROM 1sb WHERE 平均价 500 &SELECT的条件短语是 WHERE,而不是 FOR 步骤 2:保存文件修改。在命令窗口执行命令: DO modi1 prg,执行程序文件。 【试题解析】 (1)本题考查了 SQL的简单查询
10、和联接查询。 SQL简单查询可直接套用基本的查询命令格式:进行联接查询时主要是判断查询输出字段来自哪个数据表 (本题都已指明 ),再正确设置联接条件。 (2)本题考查了 SQL更新功能:分组计算查询和简单查询。 第一处错误属于 SQL更新命令格式错误,通过 SOL给字段赋新值是通过 “=”号设置的。 第二处错误是分组短语与排序短语混淆了,这也是改错题中经常设置锚误的地方。 第三处错误是查询语句的命令格式错误, SQL查询中筛选条件通过 WHERE短语指出。 三、综合应用题( 30分) 3 【正确答案】 步骤 1:在命令窗口执行如下 SQL命令语句建立视图: OPEN DATABASE成绩管理
11、CREATE view view_grade AS; SELECT 学生学号,学生姓名,课程课程名称,选课成绩; FROM 成绩管理 !学生 INNER JOIN 成绩管理 !选课; INNER JOIN 成绩管理 !课程; ON 选课课程号 =课程课程号; ON 学生学号 =选课学号; ORDER BY 学生学号,课程课程名称 DESC (注意:以上 SQL语句查询语句部分是通过视图设计器生成,大家也可以直接在视图设计器中建立。 ) 步骤 2:在命令窗口执行命令: CREATE FORMgrade_list,打开表单设计器新建表单。向表单中添加一个命令按钮 (Command1),并在 “属性
12、 ”面板中修改命 令按钮的 “Caption”属性值为:退出。 步骤 3:右击表单选择【数据环境】快捷菜单命令,继续在表单数据环境中单击右键选择【添加】快捷菜单命令,在 “添加表或视图 ”对话框中单击 “视图 ”单选项,再双击 view_grade视图文件到表单数据环境中,然后将数据环境中的 view_grade视图在拖放到表单上形成表格控件。 步骤 4:双击 “退出 ”命令按钮,编写按钮的 Click事件代码:THISFORM RELEASE。 步骤 5:单击 “常用 ”工具栏中的 “运行 ”按钮查看结果,将表单文件保 存到考生文件夹下。 【试题解析】 本大题考查了表单的常用属性、事件和方法:表单数据环境:视图的建立。 本大题首先可以通过 SQL语句或视图设计器创建一个视图文件,该视图创建过程比较简单,注意输出字段均来自哪个数据表即可,另外,在创建视图前要先打开保存视图的数据库文件。 通过拖放表单数据环境中的表到表单中,可快速建立表格及表格与数据表的联系,要注意的是在向每个页面中添加表格数据对象时,一定要注意页面处于 “编辑 ”状态下 (每个页面都可单独选定 ),否则添加的表格对象只是停留在页框上方,该表格实际 是包含在表单中而非添加到页框的页面中。控制页框中页面数的属性为 PageCount,该属性为页框控件最重要的属性之一。