itgle.com

设有学生选修课程的数据库包含如下学生表(学号,姓名,年龄,性别,所在系)选课表(学号,课程号,成绩)课程表(课程号,课程名称,教师姓名)请用SQL语言查询下列问题:1.李明老师所教的课程号、课程名称。2.年龄大于23岁的女学生的学号和姓名。3.所有成绩都在80分以上的学生姓名及所在系。4.至少选修两门以上课程的学生姓名、性别。5.选修了李明老师所讲课程的学生人数。6.“操作系统”课程得最高分的学生姓名、性别、所在系。7.所有课程成绩都在60分以上的学生姓名及所在系。

题目

设有学生选修课程的数据库包含如下

学生表(学号,姓名,年龄,性别,所在系)

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

课程表(课程号,课程名称,教师姓名)

请用SQL语言查询下列问题:

1.李明老师所教的课程号、课程名称。

2.年龄大于23岁的女学生的学号和姓名。

3.所有成绩都在80分以上的学生姓名及所在系。

4.至少选修两门以上课程的学生姓名、性别。

5.选修了李明老师所讲课程的学生人数。

6.“操作系统”课程得最高分的学生姓名、性别、所在系。

7.所有课程成绩都在60分以上的学生姓名及所在系。


相似考题
参考答案和解析
参考答案:(1)李明老师所教的课程号、课程名称。
select 课程号, 课程名称
from 课程表 where 教师姓名='李明'
(2)年龄大于23岁的女学生的学号和姓名。
select 学号, 姓名 from 学生表
where (性别='女') and (年龄>20)
(3)所有成绩都在80分以上的学生姓名及所在系。
select 姓名, 所在系 from 学生表 where 学号 in
(select distinct 学号from 选课表 where 成绩 >= 80)
(4)至少选修两门以上课程的学生姓名、性别。
Select 姓名, 性别 from 学生表
where 学号 in
(SELECT 学号 FROM 选课表
group by 学号 having count(学号)>1)
(5)选修了李明老师所讲课程的学生人数。
select count(学号)
from 选课表, 课程表
where (选课表.课程号=课程表.课程号) and (教师姓名='李明')
(6)“操作系统”课程得最高分的学生姓名、性别、所在系。
select top 1 学生表.学号, 姓名, 所在系
from 学生表, 选课表, 课程表
where(选课表.学号=学生表.学号) and (选课表.课程号=课程表.课程号)
and (课程名称 = '操作系统')
order by 成绩 desc
(7)所有课程成绩都在60分以上的学生姓名及所在系。
select 姓名, 所在系 from 学生表where 学号 in
(select distinct 学号from 选课表where 成绩 >=60)
更多“设有学生选修课程的数据库包含如下学生表(学号,姓名,年龄,性别,所在系)选课表(学号,课程号,成 ”相关问题
  • 第1题:

    设某数据库中有学生表(学号,姓名,所在系)和选课表(学号,课程号,成绩)。现要查询没选课的学生姓名和所在系。下列语句中能够实现该查询要求的是( )。

    A.SELECT姓名,所在系FROM学生表a LEFT JOIN选课表bON a.学号=b.学号WHERE a.学号IS NULL

    B.SELECT姓名,所在系FROM学生表a LEFT JOIN选课表bON a.学号=b.学号WHERE b.学号IS NULL

    C.SELECT姓名,所在系FROM学生表a RIGHT JOIN选课表bON a.学号=b.学号WHERE a.学号IS NULL

    D.SELECT姓名,所在系FROM学生表a RIGHT JOIN选课表bON a.学号=b.学号WHERE b.学号IS NULL


    正确答案:B
    从数据库中查出没有选课的学生姓名和所在系,则在学生表中查出选课表中没有的学生即可。在这里采用LEFTJOIN来连接查询。并且要求选课表中的学生学号为NULL。

  • 第2题:

    设有以下3个表: 学生表 STUD (学号,姓名,性别,年龄,专业) 课程表 KC (课程号,课程名,先修课号,学分) 学生选课表 SC (学号,课程号,成绩) 查询选修了课程名为“数据结构”的学生姓名的SELECT语句是______。

    A.SELECT 姓名 FROM STUD; WHERE 学号 SELECT 学号 FROM SC WHERE课程号 IN; (SELECT 课程号 FROM KC WHERE 课程名="数据结构")

    B.SELECT 姓名 FROM STUD; WHERE 学号 in (SELECT 学号 FROM SC WHERE 课程号 UNION; (SELECT 课程号 FROM KC WHERE课程名="数据结构"))

    C.SELECT 姓名 FROM STUD; WHERE SELECT 课程号 FROM KC WHERE课程名="数据结构"

    D.SELECT 姓名 FROM STUD; WHERE 学号 IN(SELECT 学号 FROM SC WHERE 课程号 IN; (SELECT 课程号 FROM KC WHERE 课程名="数据结构"))


    正确答案:D

  • 第3题:

    有三个关系:学生(学号,姓名,性别,年龄,所在系) 课程 (课程号,课程名,先修课号,学分) 选修(学号、课程号、成绩) 用关系代数实现下列小题。 (1) 查询所有男生的信息。 (2) 查询所有课程的课程名和学分。 (3) 查询年龄小于20岁的学生学号、姓名、性别。 (4) 查询60分以下学生的学号、姓名、课程号、课程名。 (5) 查询选修了所有课程的学生学号。


    σ系别= ‘英语系’ ∧ 性别=’女’(学生)

  • 第4题:

    设学生表S、课程表C和学生选课表SC的结构如下:

    S(学号,姓名,年龄,系别)

    C(课程号,课程名)

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

    查询学生姓名及所选修课程的课程号和成绩,实现此功能的SELECT语句是______。

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

    B.SELECTS.姓名,SC课程号,SC成绩FROM SC WHERE S.学号=SC.成绩

    C.SELECTS.姓名,SC课程号,SC成绩FROMS,SC WHERE S.学号=SC.学号

    D.SELECTS.姓名,SC课程号,SC成绩FROM S,SC


    正确答案:C

  • 第5题:

    设有以下3个表: 学生表STUD(学号,姓名,性别,年龄,专业) 课程表KC(课程号,课程名,选修课号,学分) 学生选课表SC(学号,课程号,成绩) 查询选修了课程名为“数据结构”的学生的姓名的SELECT语句是______。

    A.SELECT 姓名 FROM STUD; WHERE学号SELECT学号FROM SC WHERE 课程号IN; (SELECT课程号FROM KC WHERE 课程名=“数据结构”)

    B.SELECT姓名FROM STUD; WHERE学号IN(SELECT学号FROM SC WHERE 课程号UNION; (SELECT 课程号 FROM KC WHERE 课程名=“数据结构”))

    C.SELECT 姓名 FROM STUD; WHERESELECT课程号FROMKCWHERE课程名=“数据结构”

    D.SELECT姓名FROM STUD; WHERE 学号 IN(SELECT 学号 FROM SC WHERE 课程号 IN; (SELECT课程号FROM KC WHERE 课程名=“数据结构”))


    正确答案:D
    解析:要实现本题的查询要求,需使用嵌套查询。嵌套查询又称为子查询,它可以把一个SELECT-FROM-WHERE查询块嵌入在另一个查询块中。嵌套查询是由内向外进行的。在嵌套查询中,常用谓词IN引导子查询。选项A、B、C的语句不符合嵌套查询的语法结构,只有选项D正确。