一、基本操作题(共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" 二、简单应用(2小题,每题20分,计40分) 1、在考生文件夹下建立数据库sc2,将考生文件夹下的自由表score2添加进sc2中。根据score2表建立一个视图score_view,视图中包含的字段与score2表相同,但视图中只能查询到积分小于等于1500的信息。然后利用新建立的视图查询视图中的全部信息,并将结果按积分升序存入表v2。 2、建立一个菜单filemenu,包括两个菜单项"文件"和"帮助", "文件"将激活子菜单,该子菜单包括"打开"、"存为"和 "关闭"三个菜单项;"关闭"子菜单项用SET SYSMENU TO DEFAULT命令返回到系统菜单,其他菜单项的功能不做要求。 第1题,本题的主要考核点是视图的建立。 在"项目管理器"中选择一个数据库,选择"本地视图",然后选择"新建"按钮,打开"视图设计器"。选择所有字段,在"筛选"栏内输入条件"积分<=1500",关闭并保存。在数据库设计器中打开视图,用sort on 积分 to v2 命令存入新表。 第2题,本题的主要考核点是菜单的建立。新建菜单可按下列步骤:选择"文件"菜单中的"新建"命令,在"新建"对话框中选择"菜单",单击"新建文件"按钮。在"新建菜单"对话框中选择"菜单"按钮,调出"菜单设计器"。也可用CREATE MENU命令直接调出菜单设计器。在菜单名称中填入"文件"、"帮助","文件"结果为子菜单,单击编辑;在子菜单的菜单名称中输入"打开"、"存为"、"关闭","关闭"结果为命令"SET SYSMENU TO DEFAULT"。 三、综合应用(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 (责任编辑:lengke) |