SQL视图
精华
小牛编辑
199浏览
2023-03-14
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;