第9章 檢視的使用
檢視是一種常用 的資料庫物件,它將查詢的結果以虛擬表的形式儲存在資料中,檢視並不在資料庫中以儲存資料集的形式存在.檢視的結構和內容是建立在對錶的查詢基礎之上的,和表一樣包括行和列,這些行,列資料都來源於其所引用的表,並且是在引用檢視過程中動態生成的.
檢視的內容是由查詢定義的,並且檢視和查詢都是透過SQL語句定義的,它們 有著這麼多相同和不同之處,具體如下:
>.儲存.檢視儲存為資料庫設計的一部分,而查詢不是.檢視可以禁止所有使用者訪問資料庫中的基表,而要求使用者只能透過檢視運算元據.這種方法可以保護使用者和應用程式不受某些資料庫修改的影響,同樣也可以保護資料表的安全性.
>.排序:可以排序任何查詢結果,但是隻有當檢視包括TOP子句時才能排序檢視.
>.加密:可以加密檢視,但不能加密查詢.
>.檢視的分類與操作.
檢視分為3類:
>.標準檢視.儲存在資料庫中的SELECT查詢語句,即通常意義上理解的檢視.
>.索引檢視:建立有索引的檢視稱為索引檢視.它經過計算並儲存自己的資料,可以提高某些型別查詢的效能,尤其適用於聚合這麼多行的查詢,但不太適用於經常更新的基本資料集.
>.分割槽檢視:是在一臺或多臺伺服器間水平連線一組表中的分割槽資料,以使資料看上去來自一個表.
>.以介面方式操作檢視.
在檢視設計器介面中完成檢視的設定,按儲存鍵可以儲存檢視
>.檢視的刪除.
在左邊檢視目錄裡右鍵刪除即可.
>.使用SQL語句操作檢視
--建立檢視可以透過 CREATE VIEW 語句實現,該語句會將一個查詢的結果儲存為一個虛擬的表,方便後續查詢和操作。 -- 建立一個名為CustomerSummary的檢視,顯示顧客和他們的訂單數量 CREATE VIEW CustomerSummary AS SELECT c.CustomerID, c.CustomerName, COUNT(o.OrderID) AS OrderCount FROM Customers c LEFT JOIN Orders o ON c.CustomerID = o.CustomerID GROUP BY c.CustomerID, c.CustomerName; -- 檢視新建立的檢視內容 SELECT * FROM CustomerSummary; --修改檢視通常涉及更新檢視的查詢邏輯或欄位,可以使用 ALTER VIEW 語句。直白的說就是修改SQL語句
--如果原來的檢視定義是用WITH ENCRYPTION 或CHECK OPTION建立的,那麼只有在ALTER VIEW中也包含這些選項時,這些選項才有效 -- 修改CustomerSummary檢視,增加顧客的聯絡方式 ALTER VIEW CustomerSummary AS SELECT c.CustomerID, c.CustomerName, c.ContactPhone, COUNT(o.OrderID) AS OrderCount FROM Customers c LEFT JOIN Orders o ON c.CustomerID = o.CustomerID GROUP BY c.CustomerID, c.CustomerName, c.ContactPhone; --刪除檢視可以使用 DROP VIEW 語句。 -- 刪除名為CustomerSummary的檢視 DROP VIEW CustomerSummary; --SQL中使用SP_RENAME可以對檢視進行重新命名. exec sp_rename old_view,new_view
使用UPDATE,DELETE修改檢視裡的資料會直接影響引用表
UPDATE v1 SET sclass=5 WHERE id=1; DELETE v1 WHERE id=6; SELECT * FROM v1; SELECT * FROM dbo.student;
>.瀏覽檢視中的資料.