( 32 ) 假定学号的第 3 、 4 位为专业代码 。 要计算各专业学生选修课程号为 “ 101 ” 课程的平均成

题目

( 32 ) 假定学号的第 3 、 4 位为专业代码 。 要计算各专业学生选修课程号为 “ 101 ” 课程的平均成绩 , 正确的 SQL 语句是

A) SELECT 专业 AS SUBS( 学号 ,3,2), 平均分 AS AVG( 成绩 ) FROM 选课 WHERE 课程号 = "101" GROUP BY 专业

B) SELECT SUBS( 学号 ,3,2) AS 专业 , AVG( 成绩 ) AS 平均分 FROM 选课 WHERE 课程号 = "101" GROUP BY 1

C) SELECT SUBS( 学号 ,3,2) AS 专业 , AVG( 成绩 ) AS 平均分 FROM 选课 WHERE 课程号 = "101" ORDER BY 专业

D) SELECT 专业 AS SUBS( 学号 ,3,2), 平均分 AS AVG( 成绩 ) FROM 选课 WHERE 课程号 = "101" ORDER BY 1

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

第1题:

查询选修课程号为“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”科目成绩的记录,此查询将查询出错误的结果,此选项错误。

第2题:

检索至少选修了课程号为1和课程号为5的课程的学生的学号。


正确答案:可建立一个临时关系R ПSNUMCNUM(SC)÷R
可建立一个临时关系R ПSNUM,CNUM(SC)÷R

第3题:

设教学数据库中有4个关系:教师关系T(T,TNAME,TITLE)课程关系C(C,CNAME,T)学生关系S(S,SNAME,AGE,SEX)选课关系SC(S,C,SCORE)试用关系代数表达式表示各个查询语句。(1)检索年龄小于17岁的女学生的学号和姓名。(2)检索男学生所学课程的课程号和课程名。(3)检索男学生所学课程的任课老师的职工号和姓名。(4)检索至少选修了两门课程的学生学号。(5)检索至少有学号为S2和S4学生选修的课程的课程号。(6)检索WANG同学不学的课程的课程号。(7)检索全部学生都选修的课程的课程号与课程名。(8)检索选修课程包含LIU老师所授全部课程的学生学号。


①检索年龄小于17岁的女学生的学号和姓名。
SELECT S#.SNAME FROM S
WHERE AGE<17 AND SEX=’F’
②检索男学生所学课程的课程号和课程名。
SELECT C.C#,CNAME (连接查询方式) FROM S,SC,C
WHERE S.S#=SC.S# AND SC.C#=C.C# AND SEX=’M’;
③检索男学生所学课程的任课老师的工号和姓名。
SELECT T.T#, TNAME FROM S,SC,C,T
WHERE S.S#=SC.S# AND SC.C#=C.C# AND C.T#=T.T# AND SEX=’M’;
④检索至少选修两门课程的学生学号。
SELECT DISTINCT X.S# FROM SC AS X, SC AS Y
WHERE X.S#=Y.S# AND X.C#!=Y.C#;
⑤检索至少有学号为S2和S4的学生选修的课程的课程号。
SELECT DISTINCT X.C# FROM SC AS X, SC AS Y
WHERE X.S#=’S2’ AND Y.S#=’S4’ AND X.C#=Y.C#;
⑥检索WANG同学不学的课程的课程号。
SELECT C# FROM C
WHERE NOT EXISTS (SELECT * FROM S, SC
WHERE S.S#=SC.S# AND SC.C#=C.C# AND SNAME=’WANG’);
⑦检索全部学生都选修的课程的课程号与课程名。
SELECT C#,CNAME FROM C
WHERE NOT EXISTS (SELECT * FROM S
WHERE NOT EXISTS (SELECT * FROM SC
WHERE S#=S.S# AND C#=C.C#));
⑧检索选修课程包含LIU老师所授全部课程的学生学号。
法一:
SELECT DISTINCT S# FROM SC AS X
WHERE NOT EXISTS (SELECT * FROM C,T
WHERE C.T#=T.T# AND TNAME=’LIU’
AND NOT EXISTS (SELECT{
FROM SC AS Y
WHERE Y.S#=X.S# AND Y.C#=C.C#));
法二:
SELECT DISTINCT S# FROM SC X
WHERE NOT EXISTS ((SELECT C# FROM C,T
WHERE C.T#=T.T# AND TNAME=‘LIU’) EXCEPT
(SELECT C# FROM SC Y WHERE Y.S#=X.S#));

第4题:

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

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

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

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

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


正确答案:D
本题采用嵌套查询。其中,ALL表示所有的结果。

第5题:

假定学号的第3、4位为专业代码,要计算各专业学生选修课程号为“1O1”课程的平均成绩,正确的SQL语句是( )。

A.SELECT专业AS SUBS(学号,3,2),平均分AS AVG(成绩)FROM选课 WHERE课程号=”101”GROUP BY专业

B.SELECT SUBS(学号,3,2)AS专业,AVG(成绩)AS 平均分FROM选课 WHERE课程号=”101”GROUP BY 1

C.SELECT SUBS(学号,3,2)AS专业,AVG(成绩)AS 平均分FROM选课 WHERE课程号=”101”ORDER BY专业

D.SELECT专业AS SUBS(学号,3,2),平均分AS AVG(成绩)FROM选课 WHERE课程号=”101”ORDER BY 1


正确答案:B
先用SQLSELECT中的GROUPBY把不同专业的学生进行分组,然后再利用AVG函数计算平均分。

第6题:

已知表S(学号,姓名,年龄)

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

C(课程号,课程名,教师名)

试用SQL查询语句表达下列对教学数据库中的三个基本表S、SC、C的查询:

(1)统计有学生选修的课程门数.

(2)求选修C4课程的学生的平均年龄.

(3)求王平老师所授课程的每门课程的学生平均成绩.

(4)统计每门课程的学生选修人数(超过10人的课程才统计).要求输出课程号和选修人数.

(5)查询姓名以WANG开头的所有学生的姓名和年龄.


正确答案:
(1)SELECT  COUNT(DISTINCT课程号)
      ROM  SC;
(2)SELECT  AVG(年龄)
      FROM  S,SC
      WHERE课程号=“C4”AND S.学号=SC.
      学号;
(3)SELECTSC.课程号,课程名,AVG(成绩)
      FROM  SC,C
      WHERE  SC.课程号=C.课程号AND
      C.教师名=“王平”
       GROUP  BY  SC.课程号;
(4)SELECT课程号,COUNT(学号)
       FROM  SC
      GROUP  BY课程号
       HAVING  COUNT(*)>10;
(5)SELECT 姓名,年龄
        FROM  S
       WHERE 姓名 LIKE“WANG*”:

第7题:

拟建立如下的关系数据库及其基本表:

数据库名:学生选课数据库

学生表(学号,姓名,性别,年龄,专业)

课程表(课程号,课程名,学分,先修课程号)

选课表(ID, 学号,课程号,分数)

用SQL语言实现下列的功能:

1.创建数据库“学生选课数据库”代码;

2. A.将下列课程信息添加到课程表的代码:

B.修改 课程号为100003的课程名为“SQL数据库”;

C.删除 课程号为100002的课程信息;

3.检索姓张的女同学的情况:姓名、学号、专业。


参考答案:(1)创建数据库“学生选课数据库”代码;
create database [学生选课数据库]
go
use [学生选课数据库]
go
(2)
insert 课程表 values('100002', '数据结构', 2, '100001')
update课程表 set 课程名='SQL数据库'where 课程号='100003'
delete课程表 where 课程号='100002'
(3)
select 姓名, 学号, 专业 from 学生表
where 姓名 like '张%' and 性别='女'

第8题:

检索选修课程包含学号为2且年龄小于20的学生所修全部课程的课程号。


正确答案:ПCNUM(ПSNUM(σSNUM='2'(S)σAGE<'20'(S))ПSNUMCNUM(SC))
ПCNUM(ПSNUM(σSNUM='2'(S)σAGE<'20'(S))ПSNUM,CNUM(SC))

第9题:

学生(学号(C,8),姓名(C,6),性别(C,2),出生日期(D))选课(学号(C,8),课程号(C,3),成绩(N,5,1)) 假定学号的第3、4位为专业代码。要计算各专业学生选修课程号为“007"课程的平均成绩,正确的SQL语句是( )。

A. SELECT专业AS SUBS(学号,3,2),平均分AS AVG(成绩)FROM选课WHERE课程号=”007” GROUP BY专业

B. SELECT SUBS(学号,3,2)AS专业,AVG(成绩)As平均分FROM选课WHERE课程号=”007” GROUP BY 1

C. SELECT SUBS(学号,3,2)AS专业,AVG(成绩)As平均分FROM选课WHERE课程号=”007”OR—DER BY专业

D. SELECT专业AS SUBS(学号,3,2),平均分AS AVG(成绩)FROM选课WHERE课程号=”007”OR—DER RY 1


正确答案:B
根据题目要求,要把不同专业的学生进行分组并求平均成绩,所以要用到短语GROUP BY,在SE.LECT语句中,目标字段放在As之后,“1”表示第一个字段。

第10题:

假定学号的第3、4位为专业代码。要计算各专业学生选修课程号为"101"课程的平均成绩,正确的SQL语句是

A.SELECT 专业 AS SUBS(学号,3,2),平均分AS AVG(成绩)FROM选课 WHERE 课程号="101"GROUP BY专业

B.SELECT SUBS(学号,3,2)AS专业,AVG(成绩)AS平均分FROM选课 WHERE课程号="101"GROUP BY 1

C.SELECT SUBS(学号,3,2)AS专业,AVG(成绩)AS平均分FROM选课 WHERE课程号="101"ORDER BY专业

D.SELECT专业AS SUBS(学号,3,2),平均分AS AVG(成绩)FROM选课 WHERE课程号="101"ORDER BY 1


正确答案:B
解析:本题中所给出的四个选项中,选项A与选项C的错误很明显,因为分组短语GROUP BY后面所跟的“专业”字段,在查询的结果中并不存在,所以这两个选项不予考虑。而选项D则有一定的迷惑性,但题目仔细观察可以看出,其Select短语后面所跟随的“专业”字段列表在“选课”表中不存在,所以为错误选项。故选项 B为正确答案。

更多相关问题