第7章 視圖及其應(yīng)用_第1頁(yè)
第7章 視圖及其應(yīng)用_第2頁(yè)
第7章 視圖及其應(yīng)用_第3頁(yè)
第7章 視圖及其應(yīng)用_第4頁(yè)
第7章 視圖及其應(yīng)用_第5頁(yè)
已閱讀5頁(yè),還剩23頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、第7章 視圖及其應(yīng)用 1 2 3 掌握視圖的創(chuàng)建掌握視圖的創(chuàng)建 掌握視圖的應(yīng)用 學(xué)學(xué) 習(xí)習(xí) 目目 標(biāo)標(biāo) 理解視圖的概念及作用理解視圖的概念及作用 主要內(nèi)容主要內(nèi)容 7.1 7.1 視圖概述視圖概述 7.27.2 視圖操作視圖操作 7.17.1 視圖概述視圖概述 視圖和表類似,是數(shù)據(jù)庫(kù)的對(duì)象之一,可通過(guò)視圖同時(shí)查看數(shù)據(jù)庫(kù) 中多個(gè)表中數(shù)據(jù)。為了屏蔽數(shù)據(jù)的復(fù)雜性、簡(jiǎn)化用戶對(duì)數(shù)據(jù)的操作、控 制用戶訪問(wèn)數(shù)據(jù)的權(quán)限、保護(hù)數(shù)據(jù)安全,常為不同的用戶創(chuàng)建不同的視 圖。本章將詳細(xì)介紹視圖的概念、視圖的操作及應(yīng)用。 7.1.17.1.1 視圖的基本概念視圖的基本概念 視圖是一個(gè)虛擬表,從一個(gè)或多個(gè)表中導(dǎo)出(視圖也可

2、以從視圖 中導(dǎo)出),其內(nèi)容由查詢語(yǔ)句定義生成。表是視圖的基礎(chǔ),數(shù)據(jù)庫(kù)中 只存儲(chǔ)了視圖定義,而不存放視圖所對(duì)應(yīng)的數(shù)據(jù),視圖所對(duì)應(yīng)的數(shù)據(jù) 仍存放在視圖所引用的基表中,在引用視圖時(shí)動(dòng)態(tài)生成。 視圖是數(shù)據(jù)庫(kù)的用戶使用數(shù)據(jù)庫(kù)的觀點(diǎn),如對(duì)于一個(gè)學(xué)校,其學(xué) 生的情況存在于數(shù)據(jù)庫(kù)的一個(gè)或多個(gè)表中,而作為學(xué)校的不同職能部 門,所關(guān)心的學(xué)生數(shù)據(jù)的內(nèi)容是不同的。即使是同樣的數(shù)據(jù),也可能 有不同的操作要求,于是就可以根據(jù)他們的不同需求,在物理的數(shù)據(jù) 庫(kù)上定義他們對(duì)數(shù)據(jù)庫(kù)所要求的數(shù)據(jù)結(jié)構(gòu),這種根據(jù)用戶觀點(diǎn)定義的 數(shù)據(jù)結(jié)構(gòu)就是視圖。 7.1.27.1.2 視圖的作用視圖的作用 視圖一經(jīng)定義后,就可以像表一樣被查詢、修改、

3、刪除和更新。 使用視圖有下列優(yōu)點(diǎn): l 為用戶集中數(shù)據(jù),簡(jiǎn)化用戶的數(shù)據(jù)查詢和處理 l 屏蔽數(shù)據(jù)庫(kù)的復(fù)雜性 l 簡(jiǎn)化用戶權(quán)限的管理 l 便于數(shù)據(jù)共享 l 可以重新組織數(shù)據(jù)以便輸出到其他應(yīng)用程序中。 7.27.2 視圖操作視圖操作 對(duì)視圖的操作和表類似,有創(chuàng)建視圖,修改視圖,刪除視圖和使 用視圖。另外可以通過(guò)更新視圖(包括插入,修改和刪除)數(shù)據(jù)來(lái)修 改基本表中的數(shù)據(jù)。 7.2.17.2.1 創(chuàng)建視圖創(chuàng)建視圖 視圖是作為數(shù)據(jù)庫(kù)的對(duì)象來(lái)存儲(chǔ)的,在創(chuàng)建視圖前,要保證創(chuàng)建 視圖的用戶擁有創(chuàng)建視圖的權(quán)限,并且對(duì)視圖中引用的基表或視圖有 許可權(quán)。此外,創(chuàng)建視圖還應(yīng)該注意以下幾點(diǎn): l 只能在當(dāng)前數(shù)據(jù)庫(kù)中創(chuàng)建視

4、圖 l 在一個(gè)視圖中最多引用1024列,視圖中記錄的行數(shù)限制由基表中 記錄數(shù)目決定。 l 視圖的名稱必須遵循標(biāo)識(shí)符的命名規(guī)則 l 視圖中列的名稱一般繼承其基表中列的名稱,如果視圖中某一列 是算術(shù)表達(dá)式、函數(shù)、常量或者來(lái)自多個(gè)表的列名相同,必須要 為視圖中的列定義名稱。 7.2.17.2.1 創(chuàng)建視圖創(chuàng)建視圖 l 可以將視圖創(chuàng)建在其它視圖上,SQL Server 2008中允許32層的 視圖嵌套。 l 不能在視圖上創(chuàng)建全文索引,不能將規(guī)則、默認(rèn)綁定在視圖上。 l 不能在臨時(shí)表上創(chuàng)建視圖,也不能創(chuàng)建臨時(shí)視圖。 l 定義視圖的查詢語(yǔ)句中不能包含ORDER BY 、COMPUTE、COMPUTE BY

5、子句和INTO關(guān)鍵字 。 7.2.17.2.1 創(chuàng)建視圖創(chuàng)建視圖 【例7.1】在學(xué)生成績(jī)管理系統(tǒng)數(shù)據(jù)庫(kù)中,創(chuàng)建一個(gè)名稱為“view_cj” 視圖,使用此視圖可以從學(xué)生表、成績(jī)和課程表中查詢出所以選課學(xué) 生的學(xué)號(hào)、姓名、課程名稱和成績(jī)。其操作步驟如下: (1)啟動(dòng)【SQL Server Management Studio】,在【對(duì)象資源管理器】 窗口中,依次展開(kāi)【數(shù)據(jù)庫(kù)】【學(xué)生成績(jī)管理系統(tǒng)】節(jié)點(diǎn)。 (2)右鍵單擊【視圖】節(jié)點(diǎn),在彈出的快捷菜單中單擊【新建視圖】菜 單項(xiàng),打開(kāi)如圖7.1所示的【視圖設(shè)計(jì)器】窗口和【添加表】對(duì)話框 。 1. 使用圖形界面方式創(chuàng)建視圖 7.2.17.2.1 創(chuàng)建視圖創(chuàng)建

6、視圖 (3)從【添加表】對(duì)話框中選擇建立新視圖的基表、視圖和函數(shù)。本例 選擇課程、成績(jī)、學(xué)生三張表,單擊【添加】按鈕(在這里可以選擇 一張表單擊一次添加,也可以按住Ctrl鍵同時(shí)選擇多張表),將表添 加到視圖設(shè)計(jì)器中。關(guān)閉【添加表】對(duì)話框,回到如圖7.2所示的【 視圖設(shè)計(jì)器】窗口。 圖7.1 視圖設(shè)計(jì)器窗口 圖7.2 創(chuàng)建視圖窗口 7.2.17.2.1 創(chuàng)建視圖創(chuàng)建視圖 (4)根據(jù)新建視圖的需要,從表中選擇視圖引用的列。將列加入視圖有 三種方式,可以在關(guān)系圖窗格中,勾選相應(yīng)表的相應(yīng)列左邊的復(fù)選框 來(lái)完成;也可以通過(guò)選擇條件窗格中的【列】欄上的列名來(lái)完成,還 可以在SQL窗格中輸入SELECT語(yǔ)

7、句來(lái)選擇視圖需要的列。本例中,依 次勾選學(xué)生表中的學(xué)號(hào)、姓名和課程表中的課程名稱,成績(jī)中的成績(jī) 字段,其結(jié)果顯示如圖7.2所示。 (5)在條件窗格中的【篩選器】欄中設(shè)置過(guò)濾記錄的條件。 (6)設(shè)置完畢后,在【視圖設(shè)計(jì)器】窗口中,單擊工具欄中的 (驗(yàn)證 SQL句法)工具按鈕,檢查T-SQL語(yǔ)法。確認(rèn)語(yǔ)法正確后,單擊 (執(zhí) 行SQL)按鈕,預(yù)覽視圖返回的結(jié)果,如圖7.2中的結(jié)果窗格所示。 (7)最后,單擊【保存】按鈕,彈出【選擇名稱】對(duì)話框,在該對(duì)話框 中為視圖命名,本例為“view_cj”,單擊【確定】按鈕,將視圖保 存到數(shù)據(jù)庫(kù)中。 7.2.17.2.1 創(chuàng)建視圖創(chuàng)建視圖 創(chuàng)建視圖的語(yǔ)法格式為:

8、 CREATE VIEW view_name (column ,.n ) WITH ENCRYPTION AS SELECT_statement ; WITH CHECK OPTION 2用T-SQL語(yǔ)句創(chuàng)建視圖 7.2.17.2.1 創(chuàng)建視圖創(chuàng)建視圖 l view_name:新建視圖的名稱。視圖名稱必須符合標(biāo)識(shí)符命名規(guī)則, 其名稱前可以包含數(shù)據(jù)庫(kù)名和所有者名。 l column:視圖中的列名。如果沒(méi)有指定列名,其列名由SELECT 語(yǔ)句 指派。 l WITH ENCRYPTION:該選項(xiàng)對(duì)CREATE VIEW 語(yǔ)句文本進(jìn)行加密。 l SELECT_statement:定義視圖的SELECT

9、 語(yǔ)句。該語(yǔ)句可以使用多個(gè) 表或其它視圖。 l WITH CHECK OPTION:該選項(xiàng)強(qiáng)制視圖上執(zhí)行的所有數(shù)據(jù)修改語(yǔ)句都 必須符合由 SELECT_statement 設(shè)置的條件。 7.2.17.2.1 創(chuàng)建視圖創(chuàng)建視圖 【例7.4】創(chuàng)建加密視圖xsh_view,要求顯示學(xué)時(shí)大于等于60的課程編號(hào) 、課程名稱和學(xué)時(shí),并要求對(duì)視圖的修改滿足學(xué)時(shí)大于等于60這個(gè)條 件。 USE 學(xué)生成績(jī)管理系統(tǒng) GO CREATE VIEW xsh_view WITH ENCRYPTION AS SELECT 課程編號(hào),課程名稱,學(xué)時(shí) FROM 課程 WHERE 學(xué)時(shí)=60 WITH CHECK OPTION

10、 7.2.27.2.2 使用視圖使用視圖 視圖創(chuàng)建成功后,可以像使用基表一樣從中查詢數(shù)據(jù)。 【例7.5】查詢“jisuanji_view”視圖中學(xué)生的信息。 USE 學(xué)生成績(jī)管理系統(tǒng) GO SELECT * FROM jisuanji_view GO 1通過(guò)視圖查詢數(shù)據(jù)信息 7.2.27.2.2 使用視圖使用視圖 通過(guò)視圖來(lái)修改基表中的數(shù)據(jù),必須保證視圖是可更新視圖,包 含數(shù)據(jù)插入、數(shù)據(jù)刪除和數(shù)據(jù)修改。由于視圖本身不實(shí)際存儲(chǔ)數(shù)據(jù), 它只是顯示一個(gè)或多個(gè)基表的查詢結(jié)果,修改視圖中的數(shù)據(jù)的實(shí)質(zhì)是 在修改視圖引用的基表中的數(shù)據(jù)。 2.更新視圖 7.2.27.2.2 使用視圖使用視圖 使用INSERT

11、語(yǔ)句可以通過(guò)視圖向基表添加數(shù)據(jù)。 【例7.7】 通過(guò)視圖xsh_view向課程表添加數(shù)據(jù):(101008, 嵌入 式軟件開(kāi)發(fā),96)。 INSERT INTO xsh_view VALUES(101008,嵌入式開(kāi)發(fā),96) 使用SELECT語(yǔ)句查詢xsh_view 依據(jù)的基本表課程: SELECT * FROM 課程 注意:當(dāng)視圖所依賴的基本表有多個(gè)時(shí),不能向該視圖插入數(shù)據(jù),因?yàn)?這將會(huì)影響多個(gè)基表。例如,不能向視圖jiami_view插入數(shù)據(jù),因?yàn)?jiami_view依賴三個(gè)基本表:學(xué)生,成績(jī)和課程。 (1)插入數(shù)據(jù) 7.2.27.2.2 使用視圖使用視圖 使用UPDATE語(yǔ)句可以通過(guò)視

12、圖修改基本表的數(shù)據(jù)。 【例7.8】將xsh_view視圖中所有學(xué)生的學(xué)時(shí)增加4。 UPDATE xsh_view SET 學(xué)時(shí)=學(xué)時(shí)+4 該語(yǔ)句實(shí)際上是將xsh_view視圖所依賴的基本表課程中所有學(xué)時(shí)大于 60記錄的學(xué)時(shí)字段值在原來(lái)基礎(chǔ)上增加4。 當(dāng)一個(gè)視圖依賴于多個(gè)基本表時(shí),一次修改該視圖只能改變一個(gè)基本 表的數(shù)據(jù)。 (2)修改數(shù)據(jù) 7.2.27.2.2 使用視圖使用視圖 使用DELETE語(yǔ)句可以通過(guò)視圖刪除基本表的數(shù)據(jù),一次只能刪除一個(gè) 基本表的數(shù)據(jù)。 【例7.11】 通過(guò)視圖xsh_view 刪除課程編號(hào)為“101008”的課程。 DELETE FROM xsh_view WHERE

13、課程編號(hào)=101006 對(duì)視圖的更新操作也可通過(guò)界面進(jìn)行,操作方法與對(duì)表數(shù)據(jù)的插入、 修改和刪除的界面操作方法基本相同。 (3)刪除數(shù)據(jù) 7.2.27.2.2 使用視圖使用視圖 為了修改視圖的定義或者了解視圖是從哪些表中得到數(shù)據(jù)的,需 要查看視圖的定義。如果視圖定義沒(méi)有加密,即可獲得視圖定義的有 關(guān)信息。使用系統(tǒng)存儲(chǔ)過(guò)程SP_HELPTEXT可以查看視圖定義信息。其 語(yǔ)法格式如下: EXEC SP_HELPTEXT objname 其中:objname指用戶需要查看的視圖名稱。 3. 查看視圖定義 7.2.37.2.3 修改視圖修改視圖 視圖被定義后,可以通過(guò)T-SQL語(yǔ)句中的ALTER VI

14、EW語(yǔ)句對(duì)其進(jìn) 行修改,對(duì)于沒(méi)加密的視圖還可以使用圖形界面方式修改。 1.修改視圖定義 (1)使用圖形界面方式修改視圖 依次展開(kāi)【數(shù)據(jù)庫(kù)】【學(xué)生成績(jī)管理系統(tǒng)】【視圖】節(jié)點(diǎn), 選中要修改的視圖,右鍵單擊,選擇【設(shè)計(jì)】菜單項(xiàng),打開(kāi)【視圖設(shè) 計(jì)器】,在【視圖設(shè)計(jì)器】中修改視圖。具體修改方法同創(chuàng)建視圖方 法類似,可參照創(chuàng)建視圖的操作。 7.2.37.2.3 修改視圖修改視圖 (2)使用T-SQL語(yǔ)句修改視圖 ALTER VIEW語(yǔ)句可以修改視圖的定義,其語(yǔ)法格式如下: ALTER VIEW view_name ( column ,.n ) WITH ENCRYPTION AS SELECT_state

15、ment WITH CHECK OPTION 其中,參數(shù)的含義與CREATE VIEW語(yǔ)句中的參數(shù)一致。對(duì)于加密的與不加 密的視圖,都可以通過(guò)此語(yǔ)句進(jìn)行修改。 7.2.37.2.3 修改視圖修改視圖 【例7.12】 將上面的“xsh_view”視圖中的篩選條件變?yōu)椤皩W(xué)時(shí)70” ,取消對(duì)視圖的修改必須滿足學(xué)時(shí)大于70這個(gè)條件,取消加密條件。 USE 學(xué)生成績(jī)管理系統(tǒng) GO ALTER VIEW xsh_view AS SELECT 課程編號(hào),課程名稱,學(xué)時(shí) FROM 課程 WHERE 學(xué)時(shí)70 7.2.37.2.3 修改視圖修改視圖 視圖被定義后,如果需要對(duì)視圖名稱重新命名,可以通過(guò)圖形界 面方

16、式或存儲(chǔ)過(guò)程SP_RENAME對(duì)視圖重新命名。 2.重命名視圖 (1)使用圖形界面方式重命名視圖 啟動(dòng)【SQL Server Management Studio】,在【對(duì)象資源管理器 】窗口中,依次展開(kāi)【數(shù)據(jù)庫(kù)】【視圖所屬數(shù)據(jù)庫(kù)】【視圖】節(jié) 點(diǎn),選擇需要重命名的視圖右鍵單擊,從彈出的快捷菜單中選擇【重 命名】菜單項(xiàng),視圖名變?yōu)榭尚薷臓顟B(tài),輸入新視圖名,回車完成視 圖更名。 7.2.37.2.3 修改視圖修改視圖 (2)使用系統(tǒng)存儲(chǔ)過(guò)程SP_RENAME重命名視圖 使用系統(tǒng)存儲(chǔ)過(guò)程SP_RENAME可以很方便地重命名視圖,其語(yǔ)法格式如下 : SP_RENAME old_name ,new_nam

17、e l old_name為原視圖名稱。 l new_name為新視圖名稱。 【例7.13】將視圖 “xsh_view”重命名為“xueshi_view”。 USE 學(xué)生成績(jī)管理系統(tǒng) GO SP_RENAME xsh_view, xueshi_view GO 7.2.47.2.4 刪除視圖刪除視圖 對(duì)于不需要的視圖,可以使圖形界面方式或T-SQL語(yǔ)句中的DROP VIEW語(yǔ)句將其刪除。刪除視圖后,其所對(duì)應(yīng)的數(shù)據(jù)不會(huì)受到影響。如 果有其它數(shù)據(jù)庫(kù)對(duì)象是以此視圖為基礎(chǔ)建立的,仍可刪除此視圖,但 是再使用那些數(shù)據(jù)庫(kù)對(duì)象時(shí),將會(huì)發(fā)生錯(cuò)誤。 (1)使用圖形界面方式刪除視圖 啟動(dòng)【SQL Server Management Studio】,在【對(duì)象資源管理器 】窗口中,依次展開(kāi)【數(shù)據(jù)庫(kù)】【視圖所屬數(shù)據(jù)庫(kù)】

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論