SQL中的视图被视为虚拟表。视图还包含行和列。
要创建视图,可以从数据库中存在的一个或多个表中选择字段。
视图可以具有基于特定条件的特定行或表的所有行。
假设有以下几张表:
Student_Detail 表的结构和数据 -
| STU_ID | NAME | ADDRESS |
|---|---|---|
| 1 | Stephan | Delhi |
| 2 | Kathrin | Noida |
| 3 | David | Ghaziabad |
| 4 | Alina | Gurugram |
Student_Marks 表的结构和数据 -
| STU_ID | NAME | MARKS | AGE |
|---|---|---|---|
| 1 | Stephan | 97 | 19 |
| 2 | Kathrin | 86 | 21 |
| 3 | David | 74 | 18 |
| 4 | Alina | 90 | 20 |
| 5 | John | 96 | 18 |
1. 创建视图
可以使用CREATE VIEW语句创建视图。可以从单个表或多个表创建视图。
语法:
CREATE VIEW view_name AS
SELECT column1, column2.....
FROM table_name
WHERE condition;
2.从单个表创建视图
在此示例中,从表Student_Detail创建一个名称为DetailsView的视图。
CREATE VIEW DetailsView AS
SELECT NAME, ADDRESS
FROM Student_Details
WHERE STU_ID < 4;
就像表查询一样,可以查询视图来查看数据。
SELECT * FROM DetailsView;
查询得到结果如下 -
NAME ADDRESS
----------------------------------
Stephan Delhi
Kathrin Noida
David Ghaziabad
3.从多个表创建视图
只需在SELECT语句中包含多个表,即可创建多个表中的视图。
在给定的示例中,从两个表Student_Detail和Student_Marks创建名称为:MarksView的视图。
创建视图语句:
CREATE VIEW MarksView AS
SELECT Student_Detail.NAME, Student_Detail.ADDRESS, Student_Marks.MARKS
FROM Student_Detail, Student_Mark
WHERE Student_Detail.NAME = Student_Marks.NAME;
查询显示视图 - MarksView 的数据的语句:
SELECT * FROM MarksView;
得到以下结果:
| NAME | ADDRESS | MARKS |
|---|---|---|
| Stephan | Delhi | 97 |
| Kathrin | Noida | 86 |
| David | Ghaziabad | 74 |
| Alina | Gurugram | 90 |
4.删除视图
可以使用Drop View语句删除视图。
语法
DROP VIEW view_name;
如果要删除视图 - MarksView,可以使用以下语句:
DROP VIEW MarksView;
上一篇:
SQL DELETE语句
下一篇:
SQL索引
