10-2 创建视图计算学生课程平均分
时间: 2024-01-16 18:05:33 浏览: 50
在 SQL 中,我们可以使用视图(View)来对一个或多个表中的数据进行逻辑上的组合和展示。针对本题中的需求,我们可以创建一个视图来计算学生课程平均分,具体步骤如下:
1. 创建一个名为 `student_course_score` 的视图,该视图关联了 `student`、`course` 和 `score` 三个表。
```sql
CREATE VIEW student_course_score AS
SELECT s.student_id, s.student_name, c.course_name, sc.score
FROM student s
INNER JOIN score sc ON s.student_id = sc.student_id
INNER JOIN course c ON sc.course_id = c.course_id;
```
2. 创建一个名为 `student_avg_score` 的视图,该视图使用 `student_course_score` 视图计算每个学生在每门课程上的平均分。
```sql
CREATE VIEW student_avg_score AS
SELECT student_id, student_name, course_name, AVG(score) AS avg_score
FROM student_course_score
GROUP BY student_id, course_name;
```
通过以上两个步骤,我们就成功地创建了一个名为 `student_avg_score` 的视图,该视图展示了每个学生在每门课程上的平均分。我们可以通过查询该视图来获取所需的结果,例如:
```sql
SELECT * FROM student_avg_score;
```