10-226 查找课程选修的情况 分数 10 作者 张庆 单位 集美大学 本题目要求编写SQL语句, 查找所有开设的课程及被学生选修的情况(选课人数,最高成绩,最低成绩,平均成绩),如某门课程尚未有学生选修时也要列出来。
时间: 2024-10-03 19:01:02 浏览: 52
根据您的描述,这是一个数据库查询的问题,特别是针对教学管理系统中的数据。对于查询"10-226"课程的所有选修信息,假设我们有一个包含课程信息和选课信息的数据库,可以使用SQL语句类似这样:
```sql
SELECT
c.course_id AS '课程编号',
c.course_name AS '课程名称',
COUNT(s.student_id) AS '选修人数',
MAX(sc.score) AS '最高成绩',
MIN(sc.score) AS '最低成绩',
AVG(sc.score) AS '平均成绩'
FROM
courses c
LEFT JOIN
student_courses sc ON c.course_id = sc.course_id
LEFT JOIN
students s ON sc.student_id = s.student_id
WHERE
c.course_id = '10-226'
GROUP BY
c.course_id, c.course_name;
```
这个SQL语句做了以下几个步骤:
1. 从`courses`表中选取`course_id`和`course_name`字段作为课程的基本信息。
2. 使用`LEFT JOIN`将`courses`表与`student_courses`(记录学生选课信息)和`students`表连接,这样即使没有学生选修也能列出课程。
3. `WHERE`子句指定我们要查询的是课程ID为"10-226"的课程。
4. `COUNT`, `MAX`, `MIN`, 和 `AVG`函数分别计算选修人数、最高分、最低分和平均分。
5. `GROUP BY`按照课程ID和名称分组,确保每个课程的数据汇总在一起。
请注意,具体的字段名和表结构可能因实际数据库的不同而有所差异。如果"10-226"不存在或者没有选修记录,结果中的相应计数和成绩值会显示为NULL。