招银网络-测开笔试-数据库查询大题

    技术2022-07-13  70

    【这是考试后与同学讨论的答案,可能存在问题,欢迎指正。】

    数据库中有如下四个表: 【1】Student(Sno,Sname,Sage,Ssex)学生表。 Sno学号;Sname学生姓名;Sage学生年龄;Ssex学生性别。 【2】Course(Cno,Cname,Tno)课程表。 Cno课程编号;Cname课程名字;Tno教师编号。 【3】SC(Sno,Cno,Score)成绩表。 Sno学号;Cno课程编号;Score成绩。 【4】Teacher(Tno,Tname)教师表。 Tno教师编号;Tname教师姓名。

    请根据要求写出响应的SQL语句: (1)查询“Java”课程成绩在80分以上的学生学号、姓名和分数,按学号升序排列。

    SELECT Student.Sno,Student.Sname,SC.Score FROM Student INNER JOIN SC ON Student.Sno=SC.Sno WHERE SC.Cno IN (SELECT Cno FROM Course WHERE Cname="Java") AND SC.Score > 80 ORDER BY Student.Sno;

    (2)删除没有人选修的课程记录。

    DELETE FROM Course WHERE Cno NOT IN (SELECT Cno FROM SC);

    (3)查询所有学生的学号、选课数、平均成绩,按平均成绩降序排列。

    SELECT Sno,Count(*) ,AVG(SCore) AS avg_score FROM SC GROUP BY Sno ORDER BY avg_score DESC;
    Processed: 0.032, SQL: 9