sql视图 实际代码讲解
时间: 2023-09-16 09:12:53 浏览: 50
好的,我来给你一个实际的 SQL 视图的代码讲解。
假设我们有两个表,一个是 `students` 表,包含学生的姓名和英语成绩,另一个是 `classes` 表,包含班级名称和对应的学生姓名。
students 表:
| name | english |
|------|---------|
| Tom | 85 |
| Jack | 92 |
| Lily | 78 |
classes 表:
| class | name |
|-------|-------|
| A | Tom |
| A | Jack |
| B | Lily |
| B | Tom |
| C | Jack |
| C | Lily |
现在我们需要查询每个班级的平均英语成绩,可以使用以下 SQL 语句:
```
SELECT classes.class, AVG(students.english) AS avg_english
FROM classes
JOIN students ON classes.name = students.name
GROUP BY classes.class;
```
这个查询语句会得到以下结果:
| class | avg_english |
|-------|------------|
| A | 88.5 |
| B | 81.5 |
| C | 85 |
现在,我们可以将这个查询语句封装为一个视图,让它像一个表一样使用。创建视图的 SQL 语句如下:
```
CREATE VIEW class_avg_english AS
SELECT classes.class, AVG(students.english) AS avg_english
FROM classes
JOIN students ON classes.name = students.name
GROUP BY classes.class;
```
这个视图的名称是 `class_avg_english`,它包含两个列,一个是班级名称,一个是平均英语成绩。现在,我们可以像访问表一样访问这个视图了:
```
SELECT * FROM class_avg_english;
```
这个查询语句会得到和之前相同的结果:
| class | avg_english |
|-------|------------|
| A | 88.5 |
| B | 81.5 |
| C | 85 |
这就是一个简单的 SQL 视图的实际代码讲解。