1. 程式人生 > >建立檢視

建立檢視

檢視是從一個或幾個基本表(或檢視)匯出的表,它與基本表不同,是一個虛表。資料庫中只存放檢視的定義,而不存放檢視對應的資料,資料仍在基本表中。一旦基本表中的資料發生變化,從檢視查出的資料也就發生了變化。所以說檢視就像一個視窗,透過視窗可以看到資料庫中的資料是否發生了變化。

舉例說明:

(1)建立資訊系學生的檢視:

CREATE VIEW IS_Student
AS
SELECT Sno,Sname,Sage
FROM Student
WHERE Sdept='IS'
WITH CHECK OPTION;

解釋如下:

1>:WITH CHECK OPTION:只能更新此檢視範圍內的資料

2>:組成檢視的屬性列或者全部省略或者全部指定,沒有第三選擇。如果省略,則該檢視的屬性列為SELECT子句中的屬性列,但是以下三種情況必須全部指定屬性列:

1.某個目標列是聚集函式或表示式

2.多表連線時選出同名列作為檢視的屬性列

3.需要在檢視中為某個列建立新的更適合的名字

3>上面的檢視是行列子集檢視,行列子集檢視:一個檢視從單個基本表匯出,去掉了基本表的某些行和列,保留了主碼。

(2)建立在多個基本表上的檢視

CREATE VIEW IS_S1(Sno,Sname,Grade)
AS
SELECT Student.Sno,Sname,Grade
FROM Student,SC
WHERE Sdept='IS' AND Student.Sno=SC.Sno AND SC.Cno='1';

(3)建立在檢視上的檢視

CREATE VIEW IS_S2
AS
SELECT Sno,Sname,Grade
FROM IS_S1
WHERE Grade>=90;

(4)帶有虛擬列的檢視

CREATE VIEW BT_S(Sno,Sname,Sbirth)
AS
SELECT Sno,Sname,2018-Sage
FROM Student;

(5)分組檢視:用帶有聚集函式或GROUP BY子句的查詢定義的檢視
CREATE VIEW S_G(Sno,Gavg)
AS
SELECT Sno,AVG(Grade)
FROM SC
GROUP BY Sno;