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 |
可以使用CREATE VIEW
語句建立檢視。可以從單個表或多個表建立檢視。
語法:
CREATE VIEW view_name AS
SELECT column1, column2.....
FROM table_name
WHERE condition;
在此範例中,從表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
只需在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 |
可以使用Drop View
語句刪除檢視。
語法
DROP VIEW view_name;
如果要刪除檢視 - MarksView
,可以使用以下語句:
DROP VIEW MarksView;