基于 student_info 表、curriculum 表和 grade 表建立一个名为v_stu_g的视图,视图 包据所有学生的学号、姓名、课程名称、分数。使用视图 v_stu_g查询学号为 0001的学生的课程平均分。
时间: 2024-10-25 20:03:26 浏览: 47
Super-curriculum.rar_site:www.pudn.com_super_抓取教务_超级课程表
首先,我们需要创建一个名为 `v_stu_g` 的视图,这个视图将基于 `student_info`, `curriculum`, 和 `grade` 这三个表。假设 `student_info` 表包含学生信息(如学号 `student_id` 和姓名 `name`),`curriculum` 表包含了课程信息(如课程ID `course_id` 和课程名称 `course_name`),而 `grade` 表记录了每个学生的课程成绩(包括 `student_id`, `course_id`, 和 `score`)。视图的SQL创建语句可能如下:
```sql
CREATE VIEW v_stu_g AS
SELECT si.student_id, si.name, c.course_name, AVG(g.score) as avg_score
FROM student_info si
JOIN curriculum c ON si.student_id = c.student_id
JOIN grade g ON si.student_id = g.student_id
GROUP BY si.student_id, si.name, c.course_name
```
现在我们有了视图 `v_stu_g`,可以查询学号为 `0001` 的学生的所有课程的平均分数:
```sql
SELECT avg_score
FROM v_stu_g
WHERE student_id = '0001';
```
阅读全文