什么是視圖 大家都知道,我們國家現(xiàn)在“神七”上天了,。從美國的月球登月開始,,人類上天不再是神話。聽說,,在美國,,你只要出幾十萬美元,您就可以上一次月球進(jìn)行太空旅行,,所以,,我們相信:在不久的將來,上天旅行將走進(jìn)我們百姓的生活,,那是一件多么新鮮神奇的事情啊,。好多美國人上天后,他們用望遠(yuǎn)鏡觀看我們的地球,,結(jié)果看到的地球形狀各不相同,。有的說象綠色的橘子,有的說象白色的大鴨梨,,有的說象藍(lán)色的大西瓜,。這是為什么呢,?你肯定會說:那是因為從不同的角度(視角),看到的不同形狀而已,。那么,,從不同的視角,將看到不同的“圖形”,,這就是我們馬上講到的視圖,。我們的學(xué)員信息也是如此:對于學(xué)員的信息和成績,老師比較關(guān)心學(xué)員成績以及是否參加考試,,包括姓名,、學(xué)號、筆試,、機試,、是否通過等。班主任則比較關(guān)心學(xué)生檔案,,包括姓名,、學(xué)號、性別和年齡,。 其實,,視圖就是一張?zhí)摂M表,它表示一張表的部分?jǐn)?shù)據(jù)或多張表的綜合數(shù)據(jù),,其結(jié)構(gòu)和數(shù)據(jù)是建立在對表的查詢基礎(chǔ)上 · 視圖中并不存放數(shù)據(jù),,而是存放在視圖所引用的原始表(基表)中 · 同一張原始表,根據(jù)不同用戶的不同需求,,可以創(chuàng)建不同的視圖 視圖的用途 – 篩選表中的行 – 防止未經(jīng)許可的用戶訪問敏感數(shù)據(jù) – 降低數(shù)據(jù)庫的復(fù)雜程度 – 將多個物理數(shù)據(jù)庫抽象為一個邏輯數(shù)據(jù)庫 使用視圖可以給用戶和開發(fā)人員帶來很多好處,。具體為: 1.對最終用戶的好處 (1)結(jié)果更容易理解 創(chuàng)建視圖時,可以將列名改為有意義的名稱,,使用戶更容易理解列所代表的內(nèi)容,。在視圖中修改列名不會影響基表的列名。 (2)獲得數(shù)據(jù)更容易 很多人對SQL不太了解,,因此對他們來說創(chuàng)建對多個表的復(fù)雜查詢很困難,。可以通過創(chuàng)建視圖來方便用戶訪問多個表中的數(shù)據(jù),。 2.對開發(fā)人員的好處 (1)限制數(shù)據(jù)檢索更容易 開發(fā)人員有時需要隱藏某些行或列中的信息,。通過使用視圖,用戶可以靈活地訪問他們需要的數(shù)據(jù),,同時保證同一個表或其他表中的其他數(shù)據(jù)的安全性。要實現(xiàn)這一目標(biāo),,可以在創(chuàng)建視圖時將要對用戶保密的列排除在外,。 (2)維護(hù)應(yīng)用程序更方便 調(diào)試視圖比調(diào)試查詢更容易,。跟蹤視圖中過程的各個步驟中的錯誤更為容易,這是因為所有的步驟都是視圖的組成部分,。 如何創(chuàng)建視圖 · 使用T-SQL語句創(chuàng)建視圖的語法 CREATE VIEW view_name AS <select語句> IF EXISTS (SELECT * FROM sysobjects WHERE /*檢測是否存在*/ name = 'view_stuInfo_stuMarks') DROP VIEW view_stuInfo_stuMarks /*刪除視圖*/ GO CREATE VIEW view_stuInfo_stuMarks /*創(chuàng)建視圖*/ AS SELECT 姓名=stuName,學(xué)號=stuInfo.stuNo, 筆試成績 =writtenExam, 機試成績=labExam, 平均分=(writtenExam+labExam)/2 FROM stuInfo LEFT JOIN stuMarks ON stuInfo.stuNo=stuMarks.stuNo GO SELECT * FROM view_stuInfo_stuMarks /*使用視圖*/ 從一個或者多個表或視圖中導(dǎo)出的虛擬表,,其結(jié)構(gòu)和數(shù)據(jù)是建立在對表的查詢基礎(chǔ)上的。 理論上它可以像普通的物理表一樣使用,,例如增,、刪、改,、查等,,修改視圖中的數(shù)據(jù)實際上是修改原始數(shù)據(jù)表。因為修改視圖有許多限制,,所以在實際開發(fā)中一般視圖僅做查詢使用,。 |
|