機房收費系統——視圖的運用,機房收費系統檢視表
對於視圖在一年前的資料庫學習和自考中就學到了,那時只是理論學習,這次在機房收費系統重構中親自實踐,加深了對視圖的理解。
定義:
從資料庫系統外部來看,視圖是使用者從一個特定的角度來查看資料庫中的資料。從資料庫系統內部來看,視圖是由SELECT語句組成的查詢定義的虛擬表,在資料庫中並不真實存在。好比在提高班有學術部,安全部,紀律部等等,這些部門就是視圖,需要給哪個部門開會就通知哪個部門。這些部門的人都是提高班各個期的(基本表),並且每個人都是獨一無二的。
操作:
由於視圖只是儲存的SQL Select 語句,因此建立一個視圖實際上就是編寫Select語句。
1.視圖的建立:
CREATE VIEW<視圖名>(<列表序列>)
AS <SELECT 查詢語句>
以上是在查詢分析器中直接以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
建立成功後:
在代碼中使用視圖和基本表基本上沒有區別:
<span style="font-family:Microsoft YaHei;font-size:18px;"><span style="font-family:Microsoft YaHei;"> 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</span></span>
最後我們來說說使用視圖的好處。它使使用者只能查看和修改他們所關心的某些特定資料,其它資料庫或表既不可見也不可以訪問,這樣就提高了資料庫的安全性。當需要多個表中的資料時,不必一個一個表去查詢,只要一條簡單的查詢檢視語句即可。視圖向使用者隱藏了表與表之間的複雜的串連操作,大大簡化了使用者對資料的操作。雖然一年前對視圖就有所耳聞了,但那時覺得它好”高大上“,現在親自實踐了,原來 so easy。這就是我們學習的過程吧,循序漸進,逐層深入。
學校機房收費系統
百度搜尋 網吧管理系統或者機房計費系統,可以發現有好多。
C語言的機房收費管理系統
這個是用C實現的,不要介面嗎?