首页>计算机等级考试>模拟试题>正文
2010年全国计算机等级考试二级VFP模拟试题及解析

www.zige365.com 2010-6-2 14:39:38 点击:发送给好友 和学友门交流一下 收藏到我的会员中心

(34)~(35)题使用如下三个数据库表:
学生表:S(学号,姓名,性别,出生日期,院系)
课程表:C(课程号,课程名,学时)
选课成绩表:SC(学号,课程号,成绩)
在上述表中,出生日期数据类型为日期型,学时和成绩为数值型,其他均为字符型。
(34)用SQL语句查询选修的每门课程的成绩都高于或等于85分的学生的学号和姓名,正确的命令是(    )。
A)SELECT 学号,姓名 FROM S WHERE NOT EXISTS;
(SELECT *FROM SC WHERE SC.学号=S.学号 AND 成绩<85)
B)SELECT 学号,姓名 FROM S WHERE NOT EXISTS;
(SELECT *FROM SC WHERE SC.学号=S.学号 AND 成绩>=85)
C)SELECT 学号,姓名 FROM S,SC
WHERE S.学号=SC.学号 AND 成绩>=85
D)SELECT 学号,姓名 FROM S,SC
WHERE S.学号=SC.学号 AND ALL 成绩>=85

A:【解析】EXISTS是谓词,EXISTS或NOT EXISTS是用来检查在子查询中是否有结果返回(即存在元组或不存在元组)。其中,该谓词只是判断子查询中是否有结果返回,它本身并没有任何运算或比较。其中选项B)和C)都是返回只要有任意一门大于85的学生学号和姓名,而不是返回所有课程部大于等于85的学生学号和姓名。而ALL则要求子查询中的所有行都使结果为真时,结果才为真,并没有实际意义。

(35)用SQL语句检索选修课程在5门以上(含5门)的学生的学号、姓名和平均成绩,并按平均成绩降序排序,正确的命令是
    (    )。
A)SELECT S.学号,姓名,平均成绩FROM S,SC;
WHERE S.学号=SC.学号;
GROUP BY S.学号 HAVING COUNT(*)>=5 ORDER BY 平均成绩 DESC
B)SELECT 学号,姓名,AVG(成绩)FROM S,SC;
WHERE S.学号=SC.学号 AND COUNT(*)>=5;
GROUP BY 学号 ORDER BY 3 DESC
C)SELECT S.学号,姓名(成绩)平均成绩FROM S,SC;
WHERE S.学号=SC.学号 AND COUNT(*)>=5;
GROUP BY S.学号 ORDER BY 平均成绩 DESC
D)SELECT S.学号,姓名,AVG(成绩)平均成绩 FROM S,.SC;
WHERE S.学号=SC.学号;
GROUP BY S.学号 HAVING COUNT(*)>=5 ORDER BY 3 DESC

D:【解析】SQL SELECT中的GROUP BY短句用于对查询结果进行分组,可以利用它进行分组汇总。而HAVING短语必须跟随GROUP BY使用,它用来限定分组必须满足的条件。首先将表S与SC中的学号字段进行联接,然后利用AVG()函数求得指定字段的平均值,再通过GROUP BY子句,按照表S中的学号进行分组,其中利用HAVING子句限制分组条件,最后利用ORDER BY子句将结果按指定降序(DESC)进行排列。

本新闻共6页,当前在第6页  1  2  3  4  5  6  

我要投稿 新闻来源: 编辑: 作者:
相关新闻
2009年9月全国计算机等考三级网络模拟题二
2009年9月全国计算机等考三级网络模拟题一