软件水平考试

设有一个关系Student(学号,姓名,系名,课程号,成绩),查询至少选修了四门课程的学生学号、姓名及平均成绩的SELECT语句应该是:SELECT学号,姓名,AVG(成绩)AS平均成绩FROM StudentGROUP BY( )HAVING(请作答此空)A.COUNT(DISTINCT学号)>3 B.COUNT(课程号)>3 C.COUNT(DISTINCT学号)>=3 D.COUNT(课程号)>=3

题目
设有一个关系Student(学号,姓名,系名,课程号,成绩),查询至少选修了四门课程的学生学号、姓名及平均成绩的SELECT语句应该是:SELECT学号,姓名,AVG(成绩)AS平均成绩FROM StudentGROUP BY( )HAVING(请作答此空)

A.COUNT(DISTINCT学号)>3
B.COUNT(课程号)>3
C.COUNT(DISTINCT学号)>=3
D.COUNT(课程号)>=3
如果没有搜索结果,请直接 联系老师 获取答案。
如果没有搜索结果,请直接 联系老师 获取答案。
相似问题和答案

第1题:

设有s(学号,姓名,性别)和sc(学号,课程号,成绩)两个表,下面SQL的SELECT语句检索选修的每门课程的成绩都高于或等于85分的学生的学号、姓名和性别。SELECT 学号,姓名,性别 FROM sWHERE ___ (SELECT * FROM sc WHERE sc.学号=s.学号 AND 成绩<85)


正确答案:NOT EXISTS
本题考查SQL查询语句的使用。在SQL中,括号内SELECT*FROM sc WHERE sc.学号=5.学号AND成绩<85表示是每门课成绩都小于85分的学生,要检索成绩高于或等于85分,NOT EXISTS取反。

第2题:

计算刘明同学选修的所有课程的平均成绩,正确的SQL语句是 ______。

A.SELECT AVG(成绩)FROM 选课 WHERE 姓名=“刘明”

B.SELECT AVG(成绩)FROM 学生,选课 WHERE 姓名=“刘明”

C.SELECT AVG(成绩)FROM 学生,选课 WHERE 学生.姓名=“刘明”

D.SELECT AVG(成绩)FROM 学生,选课 WHERE 学生.学号=选课.学号 AND姓名=“刘明”


正确答案:D
解析:此小题中各个选项解释如下:选项A错误,此查询只选择了“选课”表,但在“选课”表中并没有“姓名”字段。选项B与选项C错误,此查询进行了两个表的联合查询,但没有根据关键字将两个表连接起来。选项D正确。

第3题:

用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.学号,姓名,AVG(成绩) 平均成绩 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

第4题:

创建一个名为RS的视图,用来显示所有学生的学号,姓名和平均成绩,下面正确的语句是__

A SELECT STUDENT.学号,STUDENT.姓名,SKB.平均成绩 WHERE STUDENT.学号 = SKB.学号 GROUP BY STUDENT.学号 INTO CURSOR RS

B CREATE VIEW RS AS SELECT STUDENT.学号,STUDENT.姓名,SKB.平均成绩 WHERE STUDENT.学号 = SKB.学号 GROUP BY STUDENT. 学号

C SELECT STUDENT.学号,STUDENT.姓名,SKB 平均成绩 WHERE STUDENT.学号 = SKB.学号 GROUP BY STUDENT.学号 INTO CURSOR RS

D CREATE VIEW RS AS SELECT STUDENT.学号,STUDENT.姓名,AVG(SKB.成绩) AS 平均成绩 WHERE STUDENT.学号 = SKB.学 号 GROUP BY STUDENT.学号


参考答案D

第5题:

查询所有选修了“计算机网络”的学生成绩,结果显示该学生的“姓名”、“系名”和“数据库原理”的“成绩”,并按成绩由高到低的顺序排列,下列语句中正确的是 ( )。

A.SELECT学生.姓名,学生.系名,成绩.成绩FROM学生,课程,成绩; FOR学生.学号=成绩.学号; AND课程.课程编号=成绩.课程编号; AND课程.课程名称="计算机网络"; ORDER BY成绩.成绩DESC

B.SELECT 学生.姓名.学生.系名.成绩.成绩JOIN学生,课程,成绩; ON学生.学号=成绩.学号; ON课程.课程编号=成绩.课程编号; AND课程.课程名称="计算机网络"; ORDER BY成绩.成绩DESC

C.SELECT学生.姓名,学生.系名,成绩.成绩 FROM 学生,课程,成绩; WHERE学生.学号=成绩.学号; OR课程.课程编号=成绩.课程编号; OR课程.课程名称="计算机网络"; ORDER BY 成绩.成绩 DESC

D.SELECT 学生.姓名,学生.系名,成绩.成绩FROM学生,课程,成绩; WHERE 学生.学号=成绩.学号; AND 课程.课程编号=成绩.课程编号; AND 课程.课程名称="计算机网络"; ORDER BY成绩.成绩 DESC


正确答案:D
解析:本题是一个多表连接查询的SQL语句,关键要注意表间连接条件的使用,如果使用超连接方式查询,则正确的语句格式为:
SELECT……
FROM数据库表1>INNER JOIN数据库表2>
ON连接条件>
WHERE……
其中,INNER JOIN等价于JOIN,为普通的连接,在Visual FoxPro中称为内部连接;ON连接条件>指定两个进行表连接的条件字段。
如果使用的是普通的连接方式,则只需在FROM短语中指定查询的数据表,各表名之间用逗号隔开,而各表之间的连接放在WHERE短语后面,设计两个连接条件时,用AND短语连接这两个条件。

第6题:

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


正确答案:D
本题考查使用COUNT()函数来构造复杂查询,显示”平均成绩”不是表中字段,不能直接显示,用函数来实现表示方法为:AVG(成绩)平均成绩。因选项A,选项B表示错误可排除;在查询中是先用WHERE子句限定元组,然后进行分组,最后再用HAVING子句限定分组,也就是说先写WHERE子句,然后是GROUP,最后用HAVING子句对GROUP分组限定条件。选项C这两个选项中错误在于COUNT(*)>=5分组限定条件写在WHERE之后。故选项D为正确答案。

第7题:

查询选修课程号为“101”课程得分最高的同学,正确的SQL语句是 ______。

A.SELECT 学生.学号,姓名FROM 学生,选课WHERE 学生.学号=选课.学号 AND 课程号=“101” AND 成绩>=ALL (SELECT 成绩 FROM 选课)

B.SELECT 学生.学号,姓名FROM 学生,选课 WHERE 学生.学号=选课.学号 AND 成绩>=ALL(SELECT 成绩 FROM 选课 WHERE 课程号=“101”)

C.SELECT 学生. 学号,姓名 FROM 学生,选课 WHERE 学生. 学号=选课.学号 AND 成绩>=ANY (SELECT 成绩 FROM 选课 WHERE 选课号=“101”)

D.SELECT 学生.学号,姓名 FROM 学生,选课 WHERE 学生.学号=选课.学号 AND 课程号=“101”AND 成绩>= ALL(SELECT 成绩 FROM 选课 WHERE课程号=“101”)


正确答案:D
解析:选项A中的子查询并没有限定选择“课程号”为“101”,则此命令选择出来的结果是“101”课程得分大于等于所有科目成绩的记录,如果其余课目的成绩有记录大于“101”科目的最高成绩,则此查询无结果,此选择错误。
选项B中的查询并没有限定选择“课程号”为“101”,则此命令选择出来的结果是所有课程得分大于等于所有“101”科目成绩的记录,如果其余课目的成绩有记录大于“101”科目的最高成绩,则此查询将查询出错误结果,此选项错误。
选项C中的查陶并没有限定选择“课程号”为“101”,则此命令选择出来的结果是所有课程得分大于等于任意“101”科目成绩的记录,此查询将查询出错误的结果,此选项错误。

第8题:

●已知基本表:学生(学号,姓名,性别,年龄,系名)

选课(学号,课程号,成绩)

要检索所有比"王华"年龄大的学生姓名、年龄和性别,正确的语句是 (25) ,要检索学生姓名及其所选修课程的课程号和成绩,正确的语句是 (26) 。

(25) A.SELECT姓名,年龄,性别

FROM学生

WHERE AGE>(SELECT 年龄

FROM 学生

WHERE 姓名 ="王华")

B.SELECT姓名,年龄,性别

FROM学生

WHERE姓名="王华"

C.SELECT姓名,年龄,性别

FROM学生

WHERE AGE>(SELECT年龄

WHERE姓名="王华")

D.SELECT姓名,年龄,性别

FROM学生

WHERE AGE>"王华"

(26) A.SELECT 学生.姓名,选课.课程号,选课.成绩

FROM学生

WHERE学生 学号=课程.学号

B.SELECT学生.姓名,选课.课程号,选课.成绩

FROM选课

WHERE学生.学号=课程.学号

C.SELECT学生.姓名,选课.课程号,选课.成绩

FROM学生,选课

WHERE学生.学号=课程.学号

D.SELECT学生.姓名,选课.课程号,选课.成绩

FROM学生.学号


正确答案:A,C
【解析】分句WHERE AGE>(SELECT 年龄 FROM 学生 WHERE 姓名 ="王华")限定了结果记录年龄比王华大。B、C、D项该分句均不正确。26题考查了连接操作,A、B的FROM字段错误。D项缺少连接字段。

第9题:

设学生表和成绩表的结构分别为(学号,姓名,所在系)和(学号,课程名,成绩),如果希望按分数降序查询出“英语系中选修了计算机课程的学生姓名和成绩”,则对应的SQL语句是()。

A. SELECT姓名,成绩FROM学生表,成绩表WHERE所在系一‘英语系’AND课

程名=‘计算机’AND学生表.学号=课程表,学号

B. SELECT姓名,成绩FROM学生表,成绩表WHERE所在系=‘英语系’AND课

程名=‘计算机’AND学生表.学号=课程表.学号ORDER BY成绩ASC

C. SELECT姓名,成绩FROM学生表,成绩表WHERE所在系=‘英语系’AND课

程名=计算机’AND学生表。学号=课程表。学号ORDER BY成绩

D. SELECT姓名,成绩FROM学生表,成绩表WHERE所在系=‘英语系’AND课

程名=‘计算机’AND学生表.学号一课程表.学号ORDER BY成绩DESC


参考答案D

第10题:

在关系Student(学号,姓名,系名,课程号,成绩)中,查询至少选修了四门课程的学生学号、姓名及平均成绩的SElECT语句应该是:

SELECT学号,姓名,AVC((254))AS平均成绩

FROM Student

CROUP BY学号

HAVING (255)

A.成绩

B.姓名

C.系名

D.课程号


正确答案:A

更多相关问题