文章目錄
- 參考文章:http://www.cnblogs.com/CareySon/archive/2011/12/07/2279522.html
視圖概述
使用視圖是由於自己在做儲值記錄、退卡記錄時等查詢需要顯示的資訊在多個表中(為了滿足資料庫範式),但是需要把多個表中的資料拼接起來同時顯示資料,這個時候就考慮到用視圖了,視圖就是一張虛擬表(原來資料的映射),它表示一張表的部分資料或多張表的綜合資料,其結構和資料是建立在對錶的查詢基礎上。
視圖的用途
– 篩選表中的行
– 防止未經許可的使用者訪問敏感性資料
– 降低資料庫的複雜程度
– 將多個物理資料庫抽象為一個邏輯資料庫
– 提高很大程度上的查詢速度
為什麼要使用視圖(View)
從而我們不難發現,使用視圖將會得到如下好處:
- 視圖隱藏了底層的表結構,簡化了資料訪問操作
- 因為隱藏了底層的表結構,所以大大加強了安全性,使用者只能看到視圖提供的資料
- 使用視圖,方便了許可權管理,讓使用者對視圖有許可權而不是對底層表有許可權進一步加強了安全性
- 視圖提供了一個使用者訪問的介面,當底層表改變後,改變視圖的語句來進行適應,使已經建立在這個視圖上用戶端程式不受影響
如何建立視圖
視圖的建立有兩種方法:
1:Sql內建的在Management studio中,自己比較喜歡這種方法,簡單、方便、安全。
2:添加所顯示的資訊關聯的表
3選擇需要自己需要的顯示的資訊欄位值
這樣最簡單的視圖就建立好了,下面來結合代碼如何調用
''' <summary> ''' 查詢學生餘額及學生的相關資訊 ''' </summary> ''' <param name="enStudent"></param> ''' <returns></returns> ''' <remarks></remarks> Public Function SelectStudent(enStudent As StudentEntity, enCard As CardEntity) As DataTable Implements IStudent.SelectStudent '調用視圖來查詢資料 Dim sql As String = "select * from V_QueryStudent where cardId='" & Trim(enCard.card_cardId) & "'" '調用一個不帶參數的查詢過程 Return SqlHelper.DBHelper.GetDataTable(sql, CommandType.Text) End Function
通過DataGridView控制項的綁定輕鬆地查出所需要的資料。
2:就是通過代碼實現,詳情點下面連結拓展學習
使用視圖可以給使用者和開發人員帶來很多好處。具體為:
1.對終端使用者的好處
(1)結果更容易理解
建立視圖時,可以將列名改為有意義的名稱,使使用者更容易理解列所代表的內容。在視圖中修改列名不會影響基表的列名。
(2)獲得資料更容易
很多人對SQL不太瞭解,因此對他們來說建立對多個表的複雜查詢很困難。可以通過建立視圖來方便使用者訪問多個表中的資料。
2.對開發人員的好處
(1)限制資料檢索更容易
開發人員有時需要隱藏某些行或列中的資訊。通過使用視圖,使用者可以靈活地訪問他們需要的資料,同時保證同一個表或其他表中的其他資料的安全性。要實現這一目標,可以在建立視圖時將要對使用者保密的列排除在外。
(2)維護應用程式更方便
調試視圖比調試查詢更容易。跟蹤視圖中過程的各個步驟中的錯誤更為容易,這是因為所有的步驟都是視圖的組成部分。
參考文章:http://www.cnblogs.com/CareySon/archive/2011/12/07/2279522.html