创建查询学号、姓名及该同学各门课平均成绩的视图。
时间: 2024-05-01 22:23:40 浏览: 28
假设有如下两张表:学生表(student)和成绩表(score)。
学生表(student)的结构如下:
| 字段名 | 类型 | 备注 |
| --- | --- | --- |
| id | int | 学号 |
| name | varchar(20) | 姓名 |
成绩表(score)的结构如下:
| 字段名 | 类型 | 备注 |
| --- | --- | --- |
| id | int | 成绩ID |
| student_id | int | 学号 |
| course | varchar(20) | 课程名称 |
| score | int | 分数 |
查询学号、姓名及该同学各门课平均成绩的视图可以如下创建:
```
CREATE VIEW student_score_avg_view AS
SELECT student.id AS 学号, student.name AS 姓名, score.course AS 课程, AVG(score.score) AS 平均成绩
FROM student, score
WHERE student.id = score.student_id
GROUP BY student.id, score.course;
```
该视图会将学生表和成绩表联合起来,并按照学生ID和课程名称进行分组,然后计算每个组内的平均成绩。最终的结果包括学号、姓名、课程名称和平均成绩四个字段。
相关问题
创建查询学号,姓名,课号,课名,成绩的视图vxscj
可以使用以下SQL语句来创建视图vxscj:
```sql
CREATE VIEW vxscj AS
SELECT s.sid, s.sname, c.cid, c.cname, sc.score
FROM student s
JOIN score sc ON s.sid = sc.sid
JOIN course c ON c.cid = sc.cid;
```
其中,视图名为vxscj,包含学号(sid),姓名(sname),课号(cid),课名(cname),成绩(score)这5个字段。这个视图是基于student、score、course这3个表的JOIN操作创建的。
通过这个视图,可以方便地查询每个学生的成绩情况。例如,可以使用以下SQL语句来查询学号为1001的学生的成绩:
```sql
SELECT * FROM vxscj WHERE sid = 1001;
```
创建查询学号,姓名,课号,课名,成绩的视图vxscj
好的,针对你的问题,下面是创建视图 `vxscj` 的SQL语句:
```sql
CREATE VIEW vxscj AS
SELECT s.sno, s.sname, c.cno, c.cname, sc.grade
FROM student s, course c, score sc
WHERE s.sno = sc.sno AND c.cno = sc.cno;
```
上面的SQL语句创建了一个名为 `vxscj` 的视图,该视图包含了学号(`sno`)、姓名(`sname`)、课号(`cno`)、课名(`cname`)和成绩(`grade`)这五个字段。同时,该视图是通过 `student`、`course` 和 `score` 这三个表联合查询得到的,查询条件是 `student` 和 `score` 表的学号(`sno`)字段相等,`course` 和 `score` 表的课号(`cno`)字段相等。
请注意,这里的语句是针对常见的关系型数据库系统(如MySQL、Oracle、SQL Server等)的SQL语句,如果你使用的是其他类型的数据库或者遇到了其他问题,请告诉我。