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索引