资源描述:
《二级VF上机考试SQL语言题与答案总结》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、上机考试SQL语言题与答案总结1.程序运行时,单击"计算"菜单项应完成下列操作:将所有选修了"计算机基础"的学生的"计算机基础"成绩,按"成绩"由高到低的顺序填到成绩表文件c.dbf中。(首先须将文件中原有数据清空) SETTALKOFF OPENDATABASExuesheng3 SELECTcj.学号,xs.班级,xs.姓名,cj.课程名,cj.成绩; FROMxuesheng3!xsINNERJOINxuesheng3!cj; ONxs.学号=cj.学号; WHEREcj.课程名=′计算机基础′; ORDERBYcj.
2、成绩DESC; INTOARRAYAFieldsValue DELETEFROMcjb INSERTINTOcjbFROMARRAYAFieldsValue CLOSEALL USEcjb PACK USE2.用SQL语句查询课程成绩在60分以上的学生姓名,并将结果按姓名降序存入表文件res.dbf中。SELECTDISTINCT(姓名)AS姓名; FROM课程,学生选课,学生成绩; WHERE学生成绩.学号=学生选课.学号; AND学生选课.课程号=课程.课程号; AND成绩>60; ORDERBY姓名DESC; INTOTABL
3、Eres3,编写my.prg程序,实现的功能:先为"学生成绩"表增加一个"平均成绩"字段,类型为N(6,2),根据"学生选课"表统计每个学生的平均成绩,并写入"学生成绩"表新的字段中。ALTERTABLE学生成绩ADD平均成绩N(6,2) SELECT学号,AVG(成绩)AS平均成绩; FROM学生选课; GROUPBY学号; INTOCURSORatemp DOWHILENOTEOF() UPDATE学生成绩SET平均成绩=atemp.平均成绩; WHERE学生成绩.学号=atemp.学号 SKIP ENDDO4.
4、程序运行时,单击"统计"菜单项应完成下列操作:检索出工资小于或等于本仓库职工平均工资的职工信息,并将这些职工信息按照仓库号升序,在仓库号相同的情况下再按职工号升序存放到emp1(emp1为自由表)文件中,该数据表文件和zg数据表文件具有相同的结构。SETTALKOFF SETSAFETYOFF OPENDATABASEwage3 SELECT仓库号,AVG(工资)ASavggz; FROMzg; GROUPBY仓库号; INTOCURSORcurtable SELECTzg.仓库号,zg.职工号,zg.工资; FROMzg,
5、curtable; WHEREzg.工资<=curtable.avggz; ANDzg.仓库号=curtable.仓库号; ORDERBYzg.仓库号,职工号; INTOTABLEemp1 CLOSEALL SETSAFETYON SETTALKON5.程序运行时,单击"查询"应完成下列操作:检索出与供应商S7、S4和S6都有业务联系的职工的职工号和工资,并按工资降序存放到所建立的gj文件中。单击"退出"单项,程序终止运行。SELECTDISTINCTzg.职工号,zg.工资FROMzg,dgd; WHEREzg.职
6、工号=dgd.职工号; ANDzg.职工号IN; (SELECT职工号FROMdgdWHERE供应商号="S4"); ANDzg.职工号IN(SELECT职工号FROMdgdWHERE供应商号="S6"); ANDzg.职工号IN(SELECT职工号FROMdgdWHERE供应商号="S7"); ORDERBYzg.工资DESC; INTOARRAYarr INSERTINTOgjFROMARRAYarr6.为"部门信息"表增加一个新字段"人数",编写满足如下要求的程序:根据"雇员信息"表中的"部门号"字段的
7、值确定"部门信息"表的"人数"字段的值,即对"雇员信息"表中的记录按"部门号"归类。将"部门信息"表中的记录存储到ate表中(表结构与"部门信息"表完全相同)。最后将程序保存为myp.prg,并执行该程序。ALTERTABLE部门信息ADD人数I SELECT部门号,COUNT(*)AS人数FROM雇员信息; GROUPBY部门号; INTOCURSORatemp SELECT部门信息.部门号,部门信息.部门名,atemp.人数; FROM部门信息LEFTJOINatemp; ON部门信息.部门号=atemp.部门号; GROUPB
8、Y部门信息.部门号INTOTABLEat7.progl.prg中的SQL语句用于对books表做如下操作:①为每本书的"价格"加上1元。②统计books表中每个作者所著的书的价格