1. 程式人生 > >SQL檢視簡介

SQL檢視簡介

一、檢視簡介:

檢視可以看作定義在SQL Server上的虛擬表。檢視正如其名字的含義一樣,是另一種檢視資料的入口。

常規檢視本身並不儲存實際的資料,而僅僅是由SELECT語句組成的查詢定義的虛擬表 。

檢視不能被修改,表修改或者刪除後應該刪除檢視再重建。

從資料庫系統內部來看,檢視是由一張或多張表中的資料組成的,從資料庫系統外部來看,檢視就如同一張表一樣,對錶能夠進行的一般操作都可以應用於檢視。

例如查詢,插入,修改,刪除操作等,但插入、修改、刪除等的操作其實對於原始資料表的操作。

在做資料庫開發中使用檢視的優點有:

二、檢視的優缺點?
<1>.檢視的優點
A.資料安全性。
對不同的使用者定義不同的檢視,使使用者只能看到與自己有關的資料。資料庫授權命令可以使每個使用者對資料庫的檢索限制到特定的資料庫物件上,但不能授權到資料庫特定行和特定的列上。通過檢視,使用者可以被限制在資料的不同子集上。
B.查詢簡單化。
為複雜的查詢建立一個檢視,使用者不必輸入複雜的查詢語句,只需針對此檢視做簡單的查詢即可。那些被經常使用的查詢可以被定義為檢視,從而使使用者不必為以後的操作每次都指定全部的條件。
C.邏輯資料獨立性。
檢視可以使應用程式和資料庫表在一定程度上獨立。如果沒有檢視,應用一定是建立在表上的。有了檢視之後,程式可以建立在檢視之上,從而程式與資料庫表被檢視分割開來。
對於檢視的操作,例如,查詢只依賴於檢視的定義,當構成檢視的基本表需要修改時,只需要修改檢視定義中的子查詢部分,而基於檢視的查詢不用改變。

<2>.檢視的缺點
A.效能。
SQL Server必須把檢視的查詢轉化成對基本表的查詢,如果這個檢視是由一個複雜的多表查詢所定義,那麼,即使是檢視的一個簡單查詢,SQL Server也把它變成一個複雜的結合體,需要花費一定的時間。
B.修改限制。
當用戶試圖修改檢視的某些行時,SQL Server必須把它轉化為對基本表的某些行的修改。事實上,當從檢視中插入或者刪除時,情況也是這樣。對於簡單檢視來說,這是很方便的,但是,對於比較複雜的檢視,可能是不可修改的,這些檢視有如下特徵:
  a.有UNIQUE等集合操作符的檢視。
  b.有GROUP BY子句的檢視。
  c.有諸如AVG\SUM\MAX等聚合函式的檢視。
  d.使用DISTINCT關鍵字的檢視。
  e.連線表的檢視(其中有些例外)
(3).建立檢視的限制:
在建立檢視時,還要注意試圖必須滿足以下幾點限制:
<1>.不能將規則或者DEFAULT定義關聯於檢視。
<2>.定義檢視的查詢中不能含有ORDER BY\COMPURER\COMPUTER BY 子句和INTO關鍵字
<3>.如果檢視中某一列是一個算術表示式、建構函式或者常數,而且檢視中兩個或者更多的不同列擁有一個相同的名字(這種情況通常是因為在檢視的定義中有一個連線,而且這兩個或者多個來自不同表的列擁有相同的名字),此時,使用者需要為檢視的每一列指定列的名稱。

參考部落格:
《使用SQL Server檢視的優缺點》

文章參考自:

https://www.cnblogs.com/SanMaoSpace/p/3147059.html