SELECT c.course_id, c.course_name, AVG(e.score) AS average_score FROM Courses c JOIN Enrollments e ON c.course_id = e.course_id GROUP BY c.course_id,c.course.name;
UPDATE Enrollments SET score =56.5 WHERE student_id = (SELECT student_id FROM Students WHERE name = `赵六`) AND course_id = (SELECT course_id FROM Courses WHERE course_name = `英语`);
2.SQL查询
1 2 3 4 5 6 7 8 9 10 11 12 13
SELECT s.name AS student_name, s.class AS student_class, c.course_name, e score FROM Enrollments e JOIN Students s ON e.student_id = s.student_id JOIN Courses c ON e.course_id = c.course_id WHERE e.score < 60;
4.查询结果示例
student_name
student_class
course_name
score
赵六
二班
英语
56.5
5.扩展练习
练习一:统计每个班的不及格人数
SELECT
s.class,
COUNT(*) AS fail_count
FROM
Enrollments e
JOIN
Students s ON e.student_id = s.student_id
WHERE
e.score < 60
GROUP BY
s.class;
1 2 3 4 5 6 7 8 9 10 11
* 练习二:显示每门课的不及格率 * ``` mysql SELECT c.course_name, ROUND(SUM(CASE WHERE e.score < 60 THEN 1 ELSE 0 END)/COUNT(*)*100,2) AS fail_rate FROM Enrollments e JOIN Courses c ON e.course_id = c.course_id GROUP BY c.course_name;