對于視圖在一年前的數據庫學習和自考中就學到了,那時只是理論學習,這次在機房收費系統重構中親自實踐,加深了對視圖的理解。 定義: 從數據庫系統外部來看,視圖是用戶從一個特定的角度來查看數據庫中的數據。從數據庫系統內部來看,視圖是由SELECT語句組
對于視圖在一年前的數據庫學習和自考中就學到了,那時只是理論學習,這次在機房收費系統重構中親自實踐,加深了對視圖的理解。
定義:
從數據庫系統外部來看,視圖是用戶從一個特定的角度來查看數據庫中的數據。從數據庫系統內部來看,視圖是由SELECT語句組成的查詢定義的虛擬表,在數據庫中并不真實存在。好比在提高班有學術部,安全部,紀律部等等,這些部門就是視圖,需要給哪個部門開會就通知哪個部門。這些部門的人都是提高班各個期的(基本表),并且每個人都是獨一無二的。
操作:
由于視圖只是存儲的SQL Select 語句,因此創建一個視圖實際上就是編寫Select語句。
1.視圖的創建:
CREATE VIEW<視圖名>(<列表序列>)
AS
以上是在查詢分析器中直接以T_SQL語句創建視圖,也可以在企業管理器中以圖形化的方式創建視圖。
2.視圖的撤銷:
DROP VIEW<視圖名>
3.視圖的更新:
如果視圖是從單個基本表只使用選擇、投影操作導出的,并且包含了基本表的主鍵,這樣的視圖稱為“行列子集視圖”,可以被執行更新操作(插入、修改、刪除),但在定義的時候必須加上“WITH CHECK OPTION”短語。
應用:
在機房收費系統中”下機“需要知道上機學生的卡號、卡內金額、上下機時間以及費率等等,其中查看”卡內余額“在T_Card中,查看”上機時間“在T_StuRecord中,通過使用視圖可以將需要的數據放在一起,組合成一張新表。
在查詢分析器中建立該視圖:
create viewV_ManageOnline
as select T_Card.cardNo ,cash,loginTime
from T_Card,T_StuRecord
where T_Card .cardNo=T_StuRecord .cardNo and T_StuRecord .logoutTime=null
創建成功后:
在代碼中使用視圖和基本表基本上沒有區別:
Public Function ManageDown() As DataTable Implements IManageUpStu.ManageDown Dim strSQL As String = "select * from V_ManageOnline" Dim helper As New SqlHelper.sqlHelper Dim dt = helper.GetDataTable(strSQL, CommandType.Text) Return dt End Function
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com