![第7章 視圖及其應(yīng)用_第1頁](http://file2.renrendoc.com/fileroot_temp3/2021-7/9/b36d99a0-b6a8-44f2-99c7-30c2c1c04581/b36d99a0-b6a8-44f2-99c7-30c2c1c045811.gif)
![第7章 視圖及其應(yīng)用_第2頁](http://file2.renrendoc.com/fileroot_temp3/2021-7/9/b36d99a0-b6a8-44f2-99c7-30c2c1c04581/b36d99a0-b6a8-44f2-99c7-30c2c1c045812.gif)
![第7章 視圖及其應(yīng)用_第3頁](http://file2.renrendoc.com/fileroot_temp3/2021-7/9/b36d99a0-b6a8-44f2-99c7-30c2c1c04581/b36d99a0-b6a8-44f2-99c7-30c2c1c045813.gif)
![第7章 視圖及其應(yīng)用_第4頁](http://file2.renrendoc.com/fileroot_temp3/2021-7/9/b36d99a0-b6a8-44f2-99c7-30c2c1c04581/b36d99a0-b6a8-44f2-99c7-30c2c1c045814.gif)
![第7章 視圖及其應(yīng)用_第5頁](http://file2.renrendoc.com/fileroot_temp3/2021-7/9/b36d99a0-b6a8-44f2-99c7-30c2c1c04581/b36d99a0-b6a8-44f2-99c7-30c2c1c045815.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、第7章 視圖及其應(yīng)用 1 2 3 掌握視圖的創(chuàng)建掌握視圖的創(chuàng)建 掌握視圖的應(yīng)用 學(xué)學(xué) 習(xí)習(xí) 目目 標標 理解視圖的概念及作用理解視圖的概念及作用 主要內(nèi)容主要內(nèi)容 7.1 7.1 視圖概述視圖概述 7.27.2 視圖操作視圖操作 7.17.1 視圖概述視圖概述 視圖和表類似,是數(shù)據(jù)庫的對象之一,可通過視圖同時查看數(shù)據(jù)庫 中多個表中數(shù)據(jù)。為了屏蔽數(shù)據(jù)的復(fù)雜性、簡化用戶對數(shù)據(jù)的操作、控 制用戶訪問數(shù)據(jù)的權(quán)限、保護數(shù)據(jù)安全,常為不同的用戶創(chuàng)建不同的視 圖。本章將詳細介紹視圖的概念、視圖的操作及應(yīng)用。 7.1.17.1.1 視圖的基本概念視圖的基本概念 視圖是一個虛擬表,從一個或多個表中導(dǎo)出(視圖也可
2、以從視圖 中導(dǎo)出),其內(nèi)容由查詢語句定義生成。表是視圖的基礎(chǔ),數(shù)據(jù)庫中 只存儲了視圖定義,而不存放視圖所對應(yīng)的數(shù)據(jù),視圖所對應(yīng)的數(shù)據(jù) 仍存放在視圖所引用的基表中,在引用視圖時動態(tài)生成。 視圖是數(shù)據(jù)庫的用戶使用數(shù)據(jù)庫的觀點,如對于一個學(xué)校,其學(xué) 生的情況存在于數(shù)據(jù)庫的一個或多個表中,而作為學(xué)校的不同職能部 門,所關(guān)心的學(xué)生數(shù)據(jù)的內(nèi)容是不同的。即使是同樣的數(shù)據(jù),也可能 有不同的操作要求,于是就可以根據(jù)他們的不同需求,在物理的數(shù)據(jù) 庫上定義他們對數(shù)據(jù)庫所要求的數(shù)據(jù)結(jié)構(gòu),這種根據(jù)用戶觀點定義的 數(shù)據(jù)結(jié)構(gòu)就是視圖。 7.1.27.1.2 視圖的作用視圖的作用 視圖一經(jīng)定義后,就可以像表一樣被查詢、修改、
3、刪除和更新。 使用視圖有下列優(yōu)點: l 為用戶集中數(shù)據(jù),簡化用戶的數(shù)據(jù)查詢和處理 l 屏蔽數(shù)據(jù)庫的復(fù)雜性 l 簡化用戶權(quán)限的管理 l 便于數(shù)據(jù)共享 l 可以重新組織數(shù)據(jù)以便輸出到其他應(yīng)用程序中。 7.27.2 視圖操作視圖操作 對視圖的操作和表類似,有創(chuàng)建視圖,修改視圖,刪除視圖和使 用視圖。另外可以通過更新視圖(包括插入,修改和刪除)數(shù)據(jù)來修 改基本表中的數(shù)據(jù)。 7.2.17.2.1 創(chuàng)建視圖創(chuàng)建視圖 視圖是作為數(shù)據(jù)庫的對象來存儲的,在創(chuàng)建視圖前,要保證創(chuàng)建 視圖的用戶擁有創(chuàng)建視圖的權(quán)限,并且對視圖中引用的基表或視圖有 許可權(quán)。此外,創(chuàng)建視圖還應(yīng)該注意以下幾點: l 只能在當(dāng)前數(shù)據(jù)庫中創(chuàng)建視
4、圖 l 在一個視圖中最多引用1024列,視圖中記錄的行數(shù)限制由基表中 記錄數(shù)目決定。 l 視圖的名稱必須遵循標識符的命名規(guī)則 l 視圖中列的名稱一般繼承其基表中列的名稱,如果視圖中某一列 是算術(shù)表達式、函數(shù)、常量或者來自多個表的列名相同,必須要 為視圖中的列定義名稱。 7.2.17.2.1 創(chuàng)建視圖創(chuàng)建視圖 l 可以將視圖創(chuàng)建在其它視圖上,SQL Server 2008中允許32層的 視圖嵌套。 l 不能在視圖上創(chuàng)建全文索引,不能將規(guī)則、默認綁定在視圖上。 l 不能在臨時表上創(chuàng)建視圖,也不能創(chuàng)建臨時視圖。 l 定義視圖的查詢語句中不能包含ORDER BY 、COMPUTE、COMPUTE BY
5、子句和INTO關(guān)鍵字 。 7.2.17.2.1 創(chuàng)建視圖創(chuàng)建視圖 【例7.1】在學(xué)生成績管理系統(tǒng)數(shù)據(jù)庫中,創(chuàng)建一個名稱為“view_cj” 視圖,使用此視圖可以從學(xué)生表、成績和課程表中查詢出所以選課學(xué) 生的學(xué)號、姓名、課程名稱和成績。其操作步驟如下: (1)啟動【SQL Server Management Studio】,在【對象資源管理器】 窗口中,依次展開【數(shù)據(jù)庫】【學(xué)生成績管理系統(tǒng)】節(jié)點。 (2)右鍵單擊【視圖】節(jié)點,在彈出的快捷菜單中單擊【新建視圖】菜 單項,打開如圖7.1所示的【視圖設(shè)計器】窗口和【添加表】對話框 。 1. 使用圖形界面方式創(chuàng)建視圖 7.2.17.2.1 創(chuàng)建視圖創(chuàng)建
6、視圖 (3)從【添加表】對話框中選擇建立新視圖的基表、視圖和函數(shù)。本例 選擇課程、成績、學(xué)生三張表,單擊【添加】按鈕(在這里可以選擇 一張表單擊一次添加,也可以按住Ctrl鍵同時選擇多張表),將表添 加到視圖設(shè)計器中。關(guān)閉【添加表】對話框,回到如圖7.2所示的【 視圖設(shè)計器】窗口。 圖7.1 視圖設(shè)計器窗口 圖7.2 創(chuàng)建視圖窗口 7.2.17.2.1 創(chuàng)建視圖創(chuàng)建視圖 (4)根據(jù)新建視圖的需要,從表中選擇視圖引用的列。將列加入視圖有 三種方式,可以在關(guān)系圖窗格中,勾選相應(yīng)表的相應(yīng)列左邊的復(fù)選框 來完成;也可以通過選擇條件窗格中的【列】欄上的列名來完成,還 可以在SQL窗格中輸入SELECT語
7、句來選擇視圖需要的列。本例中,依 次勾選學(xué)生表中的學(xué)號、姓名和課程表中的課程名稱,成績中的成績 字段,其結(jié)果顯示如圖7.2所示。 (5)在條件窗格中的【篩選器】欄中設(shè)置過濾記錄的條件。 (6)設(shè)置完畢后,在【視圖設(shè)計器】窗口中,單擊工具欄中的 (驗證 SQL句法)工具按鈕,檢查T-SQL語法。確認語法正確后,單擊 (執(zhí) 行SQL)按鈕,預(yù)覽視圖返回的結(jié)果,如圖7.2中的結(jié)果窗格所示。 (7)最后,單擊【保存】按鈕,彈出【選擇名稱】對話框,在該對話框 中為視圖命名,本例為“view_cj”,單擊【確定】按鈕,將視圖保 存到數(shù)據(jù)庫中。 7.2.17.2.1 創(chuàng)建視圖創(chuàng)建視圖 創(chuàng)建視圖的語法格式為:
8、 CREATE VIEW view_name (column ,.n ) WITH ENCRYPTION AS SELECT_statement ; WITH CHECK OPTION 2用T-SQL語句創(chuàng)建視圖 7.2.17.2.1 創(chuàng)建視圖創(chuàng)建視圖 l view_name:新建視圖的名稱。視圖名稱必須符合標識符命名規(guī)則, 其名稱前可以包含數(shù)據(jù)庫名和所有者名。 l column:視圖中的列名。如果沒有指定列名,其列名由SELECT 語句 指派。 l WITH ENCRYPTION:該選項對CREATE VIEW 語句文本進行加密。 l SELECT_statement:定義視圖的SELECT
9、 語句。該語句可以使用多個 表或其它視圖。 l WITH CHECK OPTION:該選項強制視圖上執(zhí)行的所有數(shù)據(jù)修改語句都 必須符合由 SELECT_statement 設(shè)置的條件。 7.2.17.2.1 創(chuàng)建視圖創(chuàng)建視圖 【例7.4】創(chuàng)建加密視圖xsh_view,要求顯示學(xué)時大于等于60的課程編號 、課程名稱和學(xué)時,并要求對視圖的修改滿足學(xué)時大于等于60這個條 件。 USE 學(xué)生成績管理系統(tǒng) GO CREATE VIEW xsh_view WITH ENCRYPTION AS SELECT 課程編號,課程名稱,學(xué)時 FROM 課程 WHERE 學(xué)時=60 WITH CHECK OPTION
10、 7.2.27.2.2 使用視圖使用視圖 視圖創(chuàng)建成功后,可以像使用基表一樣從中查詢數(shù)據(jù)。 【例7.5】查詢“jisuanji_view”視圖中學(xué)生的信息。 USE 學(xué)生成績管理系統(tǒng) GO SELECT * FROM jisuanji_view GO 1通過視圖查詢數(shù)據(jù)信息 7.2.27.2.2 使用視圖使用視圖 通過視圖來修改基表中的數(shù)據(jù),必須保證視圖是可更新視圖,包 含數(shù)據(jù)插入、數(shù)據(jù)刪除和數(shù)據(jù)修改。由于視圖本身不實際存儲數(shù)據(jù), 它只是顯示一個或多個基表的查詢結(jié)果,修改視圖中的數(shù)據(jù)的實質(zhì)是 在修改視圖引用的基表中的數(shù)據(jù)。 2.更新視圖 7.2.27.2.2 使用視圖使用視圖 使用INSERT
11、語句可以通過視圖向基表添加數(shù)據(jù)。 【例7.7】 通過視圖xsh_view向課程表添加數(shù)據(jù):(101008, 嵌入 式軟件開發(fā),96)。 INSERT INTO xsh_view VALUES(101008,嵌入式開發(fā),96) 使用SELECT語句查詢xsh_view 依據(jù)的基本表課程: SELECT * FROM 課程 注意:當(dāng)視圖所依賴的基本表有多個時,不能向該視圖插入數(shù)據(jù),因為 這將會影響多個基表。例如,不能向視圖jiami_view插入數(shù)據(jù),因為 jiami_view依賴三個基本表:學(xué)生,成績和課程。 (1)插入數(shù)據(jù) 7.2.27.2.2 使用視圖使用視圖 使用UPDATE語句可以通過視
12、圖修改基本表的數(shù)據(jù)。 【例7.8】將xsh_view視圖中所有學(xué)生的學(xué)時增加4。 UPDATE xsh_view SET 學(xué)時=學(xué)時+4 該語句實際上是將xsh_view視圖所依賴的基本表課程中所有學(xué)時大于 60記錄的學(xué)時字段值在原來基礎(chǔ)上增加4。 當(dāng)一個視圖依賴于多個基本表時,一次修改該視圖只能改變一個基本 表的數(shù)據(jù)。 (2)修改數(shù)據(jù) 7.2.27.2.2 使用視圖使用視圖 使用DELETE語句可以通過視圖刪除基本表的數(shù)據(jù),一次只能刪除一個 基本表的數(shù)據(jù)。 【例7.11】 通過視圖xsh_view 刪除課程編號為“101008”的課程。 DELETE FROM xsh_view WHERE
13、課程編號=101006 對視圖的更新操作也可通過界面進行,操作方法與對表數(shù)據(jù)的插入、 修改和刪除的界面操作方法基本相同。 (3)刪除數(shù)據(jù) 7.2.27.2.2 使用視圖使用視圖 為了修改視圖的定義或者了解視圖是從哪些表中得到數(shù)據(jù)的,需 要查看視圖的定義。如果視圖定義沒有加密,即可獲得視圖定義的有 關(guān)信息。使用系統(tǒng)存儲過程SP_HELPTEXT可以查看視圖定義信息。其 語法格式如下: EXEC SP_HELPTEXT objname 其中:objname指用戶需要查看的視圖名稱。 3. 查看視圖定義 7.2.37.2.3 修改視圖修改視圖 視圖被定義后,可以通過T-SQL語句中的ALTER VI
14、EW語句對其進 行修改,對于沒加密的視圖還可以使用圖形界面方式修改。 1.修改視圖定義 (1)使用圖形界面方式修改視圖 依次展開【數(shù)據(jù)庫】【學(xué)生成績管理系統(tǒng)】【視圖】節(jié)點, 選中要修改的視圖,右鍵單擊,選擇【設(shè)計】菜單項,打開【視圖設(shè) 計器】,在【視圖設(shè)計器】中修改視圖。具體修改方法同創(chuàng)建視圖方 法類似,可參照創(chuàng)建視圖的操作。 7.2.37.2.3 修改視圖修改視圖 (2)使用T-SQL語句修改視圖 ALTER VIEW語句可以修改視圖的定義,其語法格式如下: ALTER VIEW view_name ( column ,.n ) WITH ENCRYPTION AS SELECT_state
15、ment WITH CHECK OPTION 其中,參數(shù)的含義與CREATE VIEW語句中的參數(shù)一致。對于加密的與不加 密的視圖,都可以通過此語句進行修改。 7.2.37.2.3 修改視圖修改視圖 【例7.12】 將上面的“xsh_view”視圖中的篩選條件變?yōu)椤皩W(xué)時70” ,取消對視圖的修改必須滿足學(xué)時大于70這個條件,取消加密條件。 USE 學(xué)生成績管理系統(tǒng) GO ALTER VIEW xsh_view AS SELECT 課程編號,課程名稱,學(xué)時 FROM 課程 WHERE 學(xué)時70 7.2.37.2.3 修改視圖修改視圖 視圖被定義后,如果需要對視圖名稱重新命名,可以通過圖形界 面方
16、式或存儲過程SP_RENAME對視圖重新命名。 2.重命名視圖 (1)使用圖形界面方式重命名視圖 啟動【SQL Server Management Studio】,在【對象資源管理器 】窗口中,依次展開【數(shù)據(jù)庫】【視圖所屬數(shù)據(jù)庫】【視圖】節(jié) 點,選擇需要重命名的視圖右鍵單擊,從彈出的快捷菜單中選擇【重 命名】菜單項,視圖名變?yōu)榭尚薷臓顟B(tài),輸入新視圖名,回車完成視 圖更名。 7.2.37.2.3 修改視圖修改視圖 (2)使用系統(tǒng)存儲過程SP_RENAME重命名視圖 使用系統(tǒng)存儲過程SP_RENAME可以很方便地重命名視圖,其語法格式如下 : SP_RENAME old_name ,new_nam
17、e l old_name為原視圖名稱。 l new_name為新視圖名稱。 【例7.13】將視圖 “xsh_view”重命名為“xueshi_view”。 USE 學(xué)生成績管理系統(tǒng) GO SP_RENAME xsh_view, xueshi_view GO 7.2.47.2.4 刪除視圖刪除視圖 對于不需要的視圖,可以使圖形界面方式或T-SQL語句中的DROP VIEW語句將其刪除。刪除視圖后,其所對應(yīng)的數(shù)據(jù)不會受到影響。如 果有其它數(shù)據(jù)庫對象是以此視圖為基礎(chǔ)建立的,仍可刪除此視圖,但 是再使用那些數(shù)據(jù)庫對象時,將會發(fā)生錯誤。 (1)使用圖形界面方式刪除視圖 啟動【SQL Server Management Studio】,在【對象資源管理器 】窗口中,依次展開【數(shù)據(jù)庫】【視圖所屬數(shù)據(jù)庫】
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度供應(yīng)鏈管理保密合作協(xié)議
- 2025年度菌類食品市場拓展與代理合同
- 給公司建議書15篇
- 2025年家教服務(wù)合同范本更新版
- 電力企業(yè)財務(wù)系統(tǒng)的運行穩(wěn)定性的重要性分析
- 糖尿病護理的心得體會15篇
- 2025年度影視作品版權(quán)代理合同范本
- 2025年度建筑節(jié)能技術(shù)研發(fā)與應(yīng)用合作協(xié)議
- 電商物流與供應(yīng)鏈管理一體化研究
- 經(jīng)典誦讀活動總結(jié)(集錦15篇)
- CJT252-2011 城鎮(zhèn)排水水質(zhì)水量在線監(jiān)測系統(tǒng)技術(shù)要求
- 2024年執(zhí)業(yè)醫(yī)師考試-醫(yī)師定期考核(人文醫(yī)學(xué))筆試參考題庫含答案
- 【心理學(xué)與個人成長課程論文3500字】
- JJG 1138-2017煤礦用非色散紅外甲烷傳感器
- 2024年極兔速遞有限公司招聘筆試參考題庫附帶答案詳解
- 2024-2030年中國無人機光電吊艙行業(yè)市場深度研究及投資規(guī)劃建議報告
- 2024年考研政治試題及詳細解析
- 征兵工作試題
- 2021新安全生產(chǎn)法解讀
- 數(shù)據(jù)遷移解決方案
- 2024供電營業(yè)規(guī)則學(xué)習(xí)課件
評論
0/150
提交評論