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

题目
单选题
学生表:S(学号,姓名,性别)和选课成绩表:SC(学号,课程号,成绩),用SQL语言检索选修课程在5门以上(含5门)的学生的学号、姓名和平均成绩,并按平均成绩降序排序,正确的命令是(  )。
A

SELECT S.学号,姓名,AVG(成绩)平均成绩 FROM S,SC;
WHERE S.学号=SC.学号;
GROUP BY S.学号,姓名 HAVING COUNT(*)>=5 ORDER BY 3 DESC

B

SELECT S.学号,姓名,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.学号,姓名,平均成绩 FROM S,SC;
WHERE S.学号=SC.学号;
GROUP BY S.学号,姓名 HAVING COUNT(*)>=50RDER BY 平均成绩 DESC

如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第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语言检索选修课程在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为正确答案。

第3题:

第(34)~(35)题使用如下3个数据库表: 学生表: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

第4题:

设有 S ( 学号,姓名,性别 ) 和 SC ( 学号,课程号,成绩 ) 两个表,如下 SQL 语句检索选修的每门课程的成绩都高于或等于 85 分的学生的学号、姓名和性别,正确的是

A)SELECT 学号 , 姓名 , 性别 FROM s WHERE 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 学号 , 姓名 , 性别 FRO M s WHERE EXISTS

(SELECT * FROM sc WHERE SC. 学号 =S. 学号 AND 成绩 >85)

D)SELECT 学号 , 姓名 , 性别 FROM s WHERE NOT EXISTS

(SELECT * FROM sc WHERE SC. 学号 =S. 学号 AND 成绩 <85)


正确答案:D

第5题:

使用如下3个数据库表: 学生表:S(学号,姓名,性别,出生日期,院系) 课程表:C(课程号,课程名,学时) 选课成绩表:SC(学号,课程号,成绩) 在上述表中,出生日期数据类型为日期型,学时和成绩为数值型,其他均为字符型。用SQL语言检索选修课程在5门以上(含5门)的学生的学号、姓名和平均成绩,并按平均成绩降序排序,正确的命令是______。

A.SELECTS.学号,姓名,平均成绩FROM S,SC; WHERE S.学号=SC.学号; GROUP BY S.学号HAVING COUNT(*)>=5 ORDER BY平均成绩DESC

B.SELECT学号,姓名,AVG(成绩)FROMS,SC; WHERE S.学号=SC.学号AND COUNT(*)>=5; GROUP BY学号ORDER BY 3 DESC

C.SELECTS.学号,姓名,AVG(成绩)平均成绩FROM S,SC; WHERE S.学号;SC.学号AND COUNT(*)>=5; GROUP BY S.学号ORDER BY平均成绩DESC

D.SELECTS.学号,姓名,AVG(成绩)平均成绩FROMS,SC, WHERE S.学号:SC.学号; GROUP BYS.学号HAVING COUNT(*)7=5 ORDER BY 3 DESC


正确答案:D
解析:Visual FoxPro的SELECT—SQL命令的一般语法格式如下:
   SELECT[ALL|DISTINCT]目标列表达式>[,目标列表达式>]…
   FROM基本表(或视图)>[,基本表(或视图)>]…
   [WHERE条件表达式>]
   [GROUPBY列名1>[HAVING内部函数表达式>))
   [ORDERBY列名2>[ASC|DESC]];
说明:
①SELECT子句:ALL表示选出的记录中包括重复记录,这是缺省值;DISTINCT则表示选出的记录中不包括重复记录。
②FROM子句及其选项:用于指定查询的表,可以对单个表或多个表进行查询。
③WHERE子句:说明查询条件,即筛选元组的条件。
④GROUP BY子句:对记录按列名1>值分组,常用于分组统计。
⑤HAVING子句:当含有GROUP BY子句时,HAVING子句可用作记录查询的限制条件;无GROUP BY子句时HAVING子句的作用如同WHERE子句。
⑥ORDER BY子句:指定查询结果中记录按列名2>排序,默认升序。选项ASC表示升序,DESC表示降序。

第6题:

第(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成绩>=85D)SELECT学号,姓名FROM S,SC WHERE S.学号=SC.学号AND ALL成绩>=85


正确答案:A
本题属于多表查询,使用联接查询和嵌套查询,选项C、D使用联接查询,使用时每个字段前要表明所属的表,C、D写法都不完整;选项A、B使用嵌套查询,NOT EXISTS表示将括号内SELECT查询条件取反,故选项A为正确答案。

第7题:

使用如下3个数据库表: 学生表:S(学号,姓名,性别,出生日期,院系) 课程表:C(课程号,课程名,学时) 选课成绩表:SC(学号,课程号,成绩) 在上述表中,出生日期数据类型为日期型,学时和成绩为数值型,其他均为字符型。用SQL命令查询选修的每门课程的成绩都高于或等于85分的学生的学号和姓名,正确的命令是______。

A.SELECT学号,姓名FROM S WHERE NOT EXISTS; (SELECT*FROM SC WHERE SC.学号=S.学号AND成绩<85)

B.SELECT学号,姓名FROM S WHERE NO TEXISTS; (SELECT*FROM SC WHERE SC.学号=S.学号AND成绩>=85)

C.SELECT学号,姓名FROMS,SC; WHERE S.学号=SC.学号AND成绩>=85

D.SELECT学号,姓名FROMS,SC; WHERE S.学号=SC.学号AND ALL成绩>=85


正确答案:A
解析:本题建立的是SELECT—SQL命令的嵌套查询语句s在这个命令中要用到两个SELECT—FROM— WHERE查询块,即内层查询块和外层查询块,通过查询块检索选修的每门课程的成绩都高于或等于85分的记录,即选修的每门课程的成绩中都不存在85分以下的记录。

第8题:

用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

第9题:

设有学生表S(学号,姓名,性别,年龄)、课程表C(课程号,课程名,学分)和学生选课表SC(学号,课程号,成绩),检索学号、姓名和学生所选课程的课程名和成绩,正确的SQL命令是______。

A.SELECT 学号,姓名,课程名,成绩 FROM S,SC,C WHERE S.学号=SC.学号 AND SC.学号=C.学号

B.SELECT 学号,姓名,课程名,成绩 FROM(S JOIN SC ON S.学号=SC.学号) JOIN C ON SC.课程号=C.课程号

C.SELECT S.学号,姓名,课程名,成绩 FROM S JOIN SC JOIN C ON S.学号=SC.学号 ON SC.课程号=C.课程号

D.SELECT S.学号,姓名,课程名,成绩 FROM S JOIN SC JOIN C ON SC.课程号=C.课程号 ON S.学号=SC.学号


正确答案:D
解析:此题是一个联接查询,联接查询是一种基于多个关系的查询。在SQL查询语句中建立两表间的连接可使用JOIN关键字连接其左右两个表名>所指的表,JOIN为普通连接,在Visual FoxPro中称为内部连接,即只有满足连接条件的记录才出现在查询结果中。用ON子句指定连接条件:也可以一次性在WHERE子句中指定连接条件和筛选条件。格式如下:
  SELECT 目标列表达式>
  FROM[[表名1>|视图名1>][[INNE]
  JOIN 表名2>|视图名1>]...ON连接条件>]...
  FROM[[数据库名>]owner>{表名>|视图名>}
  [,[[数据库名>.]owner>{表名>|视图名>}...
  [WHERE条件表达式>]
  [GROUP BY列名1>
  [HAVING内部函数表达式>]]
  [ORDER BY列名2> {ASC/DESC}]
所以A、B选项错误,如果先连接学生表S和学生选课表SC,会造成结果中有不符合要求的多余记录,所以C选项错误。

第10题:

查询所修课程成绩都大于等于85分的学生的学号和姓名,正确的命令是( )。

A.SELECT学号,姓名FROM student s WHERE NOT EXISTS (SELECT*FROM score se WHERE SC.学号=s.学号码AND成绩<85)

B.SELECT学号,姓名FROM student S WHERE NOT EXISTS (SELECT*FROM score sc WHERE SC.学号=s.学号码AND成绩>=85)

C.SELECT学号,姓名FROM student s,score sc WHERE s.学号=sc.学号AND成绩>=85

D.SELECT学号,姓名FROM student s,score sc WHERE S.学号=sc.学号AND ALL成绩>=85


正确答案:B
B。【解析】由题可得,所查询的成绩是大于等于85分的学生的学号和姓名,其中成绩和学号、姓名不在一个表内,所以要用嵌套查询。而其中的成绩是大于等于85分,所以答案选择B。

更多相关问题