mysql查询选修了“数据结构”的学生姓名、平时成绩、期末成绩、总评成绩;
时间: 2023-07-10 18:31:17 浏览: 284
可以使用如下的 SQL 语句查询选修了“数据结构”的学生姓名、平时成绩、期末成绩、总评成绩:
```
SELECT s.name, c.usual_score, c.final_score, c.total_score
FROM student s
JOIN course_selection cs ON s.id = cs.student_id
JOIN course c ON cs.course_id = c.id
WHERE c.name = '数据结构';
```
其中,`student` 表存储学生信息,包括学生姓名;`course_selection` 表存储选课信息,包括学生 ID 和课程 ID,用于连接 `student` 表和 `course` 表;`course` 表存储课程信息,包括课程名称、平时成绩、期末成绩、总评成绩。在查询中,我们通过连接三张表,并使用 WHERE 子句筛选出课程名称为“数据结构”的课程,最终得到选修了该课程的学生姓名、平时成绩、期末成绩、总评成绩。
相关问题
mysql查询选修课程成绩最高的学生姓名、课程名、成绩。
好的,这个问题是关于数据库查询的,我可以提供以下 SQL 查询语句:
SELECT s.name, c.course_name, MAX(sc.score)
FROM student s, course c, score sc
WHERE sc.student_id=s.id AND sc.course_id=c.id AND c.is_optional=1
GROUP BY s.id, c.id;
这个查询语句可以查询选修课程成绩最高的学生姓名、课程名、成绩。请注意,这个查询语句假设选修课程的 is_optional 字段为 1,你需要根据实际情况修改语句中的数据库表和字段名称。
mysql查询平均成绩大于85的学生姓名和平均成绩
假设学生成绩信息存储在名为`scores`的表中,该表包含学生姓名`name`、学号`student_id`、课程名称`course`和分数`score`四个字段,可以使用以下SQL查询语句来查询平均成绩大于85的学生姓名和平均成绩:
```
SELECT name, AVG(score) AS avg_score
FROM scores
GROUP BY student_id
HAVING AVG(score) > 85;
```
该查询语句中,首先使用`GROUP BY`子句将成绩表按照学生进行分组,以便计算每个学生的平均成绩。然后使用`HAVING`子句过滤出平均成绩大于85分的学生记录,并使用`SELECT`子句选择对应的姓名和平均成绩列进行显示。
需要注意的是,由于需要计算平均成绩,查询中使用`AVG()`聚合函数来求每个学生的平均成绩。同时,在`SELECT`子句中使用`AS`关键字来给计算结果起一个别名,以便更好地显示结果。