1、視圖的理解
從使用者角度來看,一個視圖是從一個特定的角度來查看資料庫中的資料
。從資料庫系統內部來看,一個視圖是由SELECT語句組成的查詢定義的虛擬表
。從資料庫系統內部來看,視圖是由一張或多張表中的資料群組成的,從資料庫系統外部來看,視圖就如同一張表
一樣,對錶能夠進行的一般操作都可以應用於視圖,例如查詢,插入,修改,刪除操作等。
2、視圖的用途
–
篩選表中的行
–
防止未經許可的使用者訪問敏感性資料
–
降低資料庫的複雜程度
–
將多個物理資料庫抽象為一個邏輯資料庫
使用視圖可以給使用者和開發人員帶來很多好處。具體為:
A.
對終端使用者的好處
(
1
)結果更容易理解
建立視圖時,可以將列名改為有意義的名稱,使使用者更容易理解列所代表的內容。在視圖中修改列名不會影響基表的列名。
(
2
)獲得資料更容易
很多人對
SQL
不太瞭解,因此對他們來說建立對多個表的複雜查詢很困難。可以通過建立視圖來方便使用者訪問多個表中的資料。
B.
對開發人員的好處
(
1
)限制資料檢索更容易
開發人員有時需要隱藏某些行或列中的資訊。通過使用視圖,使用者可以靈活地訪問他們需要的資料,同時保證同一個表或其他表中的其他資料的安全性。要實現這一目標,可以在建立視圖時將要對使用者保密的列排除在外。
(
2
)維護應用程式更方便
調試視圖比調試查詢更容易。跟蹤視圖中過程的各個步驟中的錯誤更為容易,這是因為所有的步驟都是視圖的組成部分
3、
如何建立使用視圖
•
使用
T-SQL
語句建立視圖的文法
CREATE VIEW view_name<br /> AS<br /> <select語句><br />IF EXISTS (SELECT * FROM sysobjects WHERE /*檢測是否存在*/<br /> name = 'view_stuInfo_stuMarks')<br /> DROP VIEW view_stuInfo_stuMarks /*刪除視圖*/<br />GO<br />CREATE VIEW view_stuInfo_stuMarks /*建立視圖*/<br /> AS<br /> SELECT 姓名=stuName,學號=stuInfo.stuNo,<br /> 筆試成績 =writtenExam, 機試成績=labExam,<br /> 平均分=(writtenExam+labExam)/2<br /> FROM stuInfo LEFT JOIN stuMarks<br /> ON stuInfo.stuNo=stuMarks.stuNo<br />GO<br />SELECT * FROM view_stuInfo_stuMarks /*使用視圖*/
從一個或者多個表或視圖中匯出的虛擬表,其結構和資料是建立在對錶的查詢基礎上的。
理論上它可以像普通的物理表一樣使用,例如增、刪、改、查等,修改視圖中的資料實際上是修改
未經處理資料表。因為修改視圖有許多限制,所以在實際開發中一般視圖僅做查詢使用。
4、
自己使用的小例子:
use Power<br />GO<br />create view Test<br />as<br />select b.id as lineareaid,b.qymc as qymc,a.lineyear_month as lineyear_month from Linearea as b inner join LineLoss as a on a.lineareaid=b.id<br />union all<br />select b.id as lineareaid,b.qymc as qymc,c.lineyear_month as lineyear_month from Linearea as b inner join LineData as c on c.lineareaid=b.id<br />=====================================================<br />在SQL語句只直接使用視圖和普通表一樣使用:<br />select * from Test<br />