m0_75278292 2022-12-17 16:07 采纳率: 0%
浏览 60
已结题

sql正在努力学习,求答疑

1、设计一个触发器,每当系统中删除一门课程,就需要自动修改相应成绩表的数据,以便保持系统中课程与成绩数据的完整性与一致性
2.
统计并显示总评成绩(usually成绩占40%,final成绩占60%)的平均分,如果平均分在60分以上,显示“成绩优秀”,并显示前三名学员的考试信息;如果在60分以下,则显示“本班成绩较差”,并显示后三名学员的考试信息。

  • 写回答

3条回答 默认 最新

  • |__WhoAmI__| 2022-12-17 16:28
    关注
    获得0.75元问题酬金

    1、

    CREATE TRIGGER update_grades
    AFTER DELETE ON courses
    FOR EACH ROW
    BEGIN
       DELETE FROM grades WHERE course_id = OLD.id;
    END;
    

    2、
    使用 SELECT 语句来统计平均分:

    SELECT AVG((usual + final) / 2) as avg_score FROM grades;
    

    使用 IF 语句来根据平均分的值输出不同的消息:

    SELECT
      IF(AVG((usual + final) / 2) >= 60, '成绩优秀', '本班成绩较差') as result
    FROM grades;
    

    使用 ORDER BY 和 LIMIT 语句来选择并输出前三名或后三名的学员考试信息:

    SELECT * FROM grades
    WHERE (usual + final) / 2 >= 60
    ORDER BY (usual + final) / 2 DESC
    LIMIT 3;
    

    输出成绩小于 60 分的学员考试信息:

    SELECT * FROM grades
    WHERE (usual + final) / 2 < 60
    ORDER BY (usual + final) / 2 ASC
    LIMIT 3;
    
    评论

报告相同问题?

问题事件

  • 系统已结题 12月25日
  • 创建了问题 12月17日