SQL SERVER 從入門到精通 第5版 第二篇 第9章 檢視的使用 讀書筆記

一曲轻扬發表於2024-04-10

第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;

  >.瀏覽檢視中的資料.

相關文章