1. 程式人生 > >數據庫優化之創建視圖

數據庫優化之創建視圖

視圖 數據庫 view sql 楊書凡

視圖是保存在數據庫中的SELECT查詢,可在視圖上執行SELECT語句的大多數命令。創建視圖的原因有兩個:一是出於安全考慮,用戶不必看到整個數據庫結構,而隱藏部分數據;二是符合用戶日常業務邏輯,使其對數據更容易理解


什麽是視圖?

視圖是另一種查看數據庫中一個或多個表中數據的方法。視圖是一個虛擬表,通常由一個或多個表的行和列的子集創建的,它並不是數據庫存儲的數據值的集合,它的行和列都來自查詢引用的表。在執行時,視圖直接顯示表中的數據。

定義視圖的查詢可基於一個或多個表,也可基於其他視圖、當前數據庫和其他數據庫

技術分享圖片

視圖的作用

* 篩選表中的行

* 防止未經許可的用戶訪問敏感數據

* 將多個物理數據表抽象為一個邏輯數據表


使用視圖的好處

1. 對於最終用戶

* 結果更容易理解,可將列名改為有意義的名稱

* 獲得數據更容易,無需掌握多表查詢的T-SQL語句,通過視圖即可查看

2. 對於開發人員

* 限制檢索更容易,創建視圖時,將對用戶保密的列排查在外

* 維護應用程序更方便


創建視圖

在SQL Server中,創建視圖有兩種方法:使用SSMS和使用T-SQL語句

1. 使用SSMS創建視圖

(1)展開數據庫,右擊視圖,選擇新建視圖

技術分享圖片


(2)選擇需要的表,並選擇希望查看的列,填寫別名,還可以修改下面的T-SQL語句,執行

技術分享圖片


(3)最後選擇保存,可以像打開普通表一樣使用它


2. 使用T-SQL語句創建視圖

創建視圖的語法如下:

create view 視圖名 as T-SQL語句


例如:為網絡班的學生創建視圖,只顯示姓名、性別、班級

技術分享圖片


使用視圖的註意事項

  1. 每個視圖中可以使用多個表

  2. 與查詢相似,一個視圖可以嵌套另一個視圖,但最好不要超過三層

  3. 視圖定義中的SELECT語句不能包括下列內容

* ORDER BY語句,除非在SELECT語句的選擇列表也有一個TOP子句

* INTO關鍵字

* 引用臨時表或表變量




數據庫優化之創建視圖