數(shù)據(jù)庫原理與應(yīng)用:第8章 視圖的創(chuàng)建和使用_第1頁
數(shù)據(jù)庫原理與應(yīng)用:第8章 視圖的創(chuàng)建和使用_第2頁
數(shù)據(jù)庫原理與應(yīng)用:第8章 視圖的創(chuàng)建和使用_第3頁
數(shù)據(jù)庫原理與應(yīng)用:第8章 視圖的創(chuàng)建和使用_第4頁
數(shù)據(jù)庫原理與應(yīng)用:第8章 視圖的創(chuàng)建和使用_第5頁
已閱讀5頁,還剩11頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、數(shù)據(jù)庫原理與應(yīng)用數(shù)據(jù)庫原理與應(yīng)用第八講第八講 視圖的創(chuàng)建和使用視圖的創(chuàng)建和使用 視圖視圖概述概述 創(chuàng)建視圖創(chuàng)建視圖 查看視圖信息查看視圖信息 修改和重命名視圖修改和重命名視圖 使用視圖使用視圖 本講主要內(nèi)容 概述視圖的概念視圖的概念 視圖是一種數(shù)據(jù)庫對象,是從一個或者多個數(shù)據(jù)表或視視圖是一種數(shù)據(jù)庫對象,是從一個或者多個數(shù)據(jù)表或視圖中導(dǎo)出的虛表,視圖的結(jié)構(gòu)和數(shù)據(jù)是對數(shù)據(jù)表進(jìn)行查詢的圖中導(dǎo)出的虛表,視圖的結(jié)構(gòu)和數(shù)據(jù)是對數(shù)據(jù)表進(jìn)行查詢的結(jié)果。結(jié)果。視圖被定義后便存儲在數(shù)據(jù)庫中,通過視圖看到的數(shù)據(jù)視圖被定義后便存儲在數(shù)據(jù)庫中,通過視圖看到的數(shù)據(jù)只是存放在基表中的數(shù)據(jù)。當(dāng)對通過視圖看到的數(shù)據(jù)進(jìn)行修只是存

2、放在基表中的數(shù)據(jù)。當(dāng)對通過視圖看到的數(shù)據(jù)進(jìn)行修改時,相應(yīng)的基表的數(shù)據(jù)也會發(fā)生變化,同時,若基表的數(shù)改時,相應(yīng)的基表的數(shù)據(jù)也會發(fā)生變化,同時,若基表的數(shù)據(jù)發(fā)生變化,這種變化也會自動地反映到視圖中。據(jù)發(fā)生變化,這種變化也會自動地反映到視圖中。視圖可以是一個數(shù)據(jù)表的一部分,也可以是多個基表的視圖可以是一個數(shù)據(jù)表的一部分,也可以是多個基表的聯(lián)合。聯(lián)合。使用視圖的優(yōu)點和作用 可以使視圖集中數(shù)據(jù)、簡化和定制不同用戶對數(shù)據(jù)庫的不同數(shù)據(jù)要求??梢允挂晥D集中數(shù)據(jù)、簡化和定制不同用戶對數(shù)據(jù)庫的不同數(shù)據(jù)要求。 使用視圖可以屏蔽數(shù)據(jù)的復(fù)雜性,用戶不必了解數(shù)據(jù)庫的結(jié)構(gòu),就可以使用視圖可以屏蔽數(shù)據(jù)的復(fù)雜性,用戶不必了解數(shù)

3、據(jù)庫的結(jié)構(gòu),就可以方便地使用和管理數(shù)據(jù),簡化數(shù)據(jù)權(quán)限管理和重新組織數(shù)據(jù)以便輸出到其方便地使用和管理數(shù)據(jù),簡化數(shù)據(jù)權(quán)限管理和重新組織數(shù)據(jù)以便輸出到其他應(yīng)用程序中。他應(yīng)用程序中。 視圖可以使用戶只關(guān)心他感興趣的某些特定數(shù)據(jù)和他們所負(fù)責(zé)的特定任視圖可以使用戶只關(guān)心他感興趣的某些特定數(shù)據(jù)和他們所負(fù)責(zé)的特定任務(wù),而那些不需要的或者無用的數(shù)據(jù)則不在視圖中顯示。務(wù),而那些不需要的或者無用的數(shù)據(jù)則不在視圖中顯示。 視圖大大地簡化了用戶對數(shù)據(jù)的操作。視圖大大地簡化了用戶對數(shù)據(jù)的操作。視圖可以讓不同的用戶以不同的方式看到不同或者相同的數(shù)據(jù)集。視圖可以讓不同的用戶以不同的方式看到不同或者相同的數(shù)據(jù)集。 在某些情況下

4、,由于表中數(shù)據(jù)量太大,因此在表的設(shè)計時常將表進(jìn)行水在某些情況下,由于表中數(shù)據(jù)量太大,因此在表的設(shè)計時常將表進(jìn)行水平或者垂直分割,但表的結(jié)構(gòu)的變化對應(yīng)用程序產(chǎn)生不良的影響。平或者垂直分割,但表的結(jié)構(gòu)的變化對應(yīng)用程序產(chǎn)生不良的影響。 視圖提供了一個簡單而有效的安全機(jī)制。視圖提供了一個簡單而有效的安全機(jī)制。 概述視圖的優(yōu)點視圖的優(yōu)點1.1.視圖可以屏蔽數(shù)據(jù)的復(fù)雜性,簡化用戶對數(shù)據(jù)庫的操作。視圖可以屏蔽數(shù)據(jù)的復(fù)雜性,簡化用戶對數(shù)據(jù)庫的操作。 2.2.視圖可以讓不同的用戶以不同的方式看到不同或者相同視圖可以讓不同的用戶以不同的方式看到不同或者相同的數(shù)據(jù)集。的數(shù)據(jù)集。3.3.可以使用視圖重新組織數(shù)據(jù)??梢?/p>

5、使用視圖重新組織數(shù)據(jù)。 4.4.視圖可以定制不同用戶對數(shù)據(jù)的訪問權(quán)限。視圖可以定制不同用戶對數(shù)據(jù)的訪問權(quán)限。 創(chuàng)建視圖 視圖的名稱視圖的名稱 只能在當(dāng)前數(shù)據(jù)庫中創(chuàng)建視圖。只能在當(dāng)前數(shù)據(jù)庫中創(chuàng)建視圖。一個視圖中行、列的限制。一個視圖中行、列的限制。如果視圖中某一列是函數(shù)、數(shù)學(xué)表達(dá)式、常量或者來自多個如果視圖中某一列是函數(shù)、數(shù)學(xué)表達(dá)式、常量或者來自多個表的列名相同,則必須為列定義名稱。表的列名相同,則必須為列定義名稱。 視圖與基表的關(guān)系視圖與基表的關(guān)系不能在視圖上創(chuàng)建索引,不能在規(guī)則、默認(rèn)的定義中引用視不能在視圖上創(chuàng)建索引,不能在規(guī)則、默認(rèn)的定義中引用視圖。圖。 創(chuàng)建視圖1、使用企業(yè)管理器創(chuàng)建視圖

6、、使用企業(yè)管理器創(chuàng)建視圖 2、使用、使用Transact-SQL語句創(chuàng)建視圖語句創(chuàng)建視圖 CREATE VIEW . . view_name ( column ,.n ) WITH ,.n ASselect_statement WITH CHECK OPTION := ENCRYPTION | SCHEMABINDING | VIEW_METADATA 3 3、使用向?qū)?chuàng)建視圖、使用向?qū)?chuàng)建視圖 查看視圖信息 1 1 使用企業(yè)管理器查看視圖信息使用企業(yè)管理器查看視圖信息 2 2 使用系統(tǒng)存儲過程查看視圖信息使用系統(tǒng)存儲過程查看視圖信息 sp_help sp_help 數(shù)據(jù)庫對象名稱數(shù)據(jù)庫對象名

7、稱sp_helptext sp_helptext 視圖(觸發(fā)器、存儲過程)視圖(觸發(fā)器、存儲過程)sp_depends sp_depends 數(shù)據(jù)庫對象名稱數(shù)據(jù)庫對象名稱 修改和重命名視圖 1使用企業(yè)管理器修改視圖使用企業(yè)管理器修改視圖 2使用使用Transact-SQL語句修改視圖語句修改視圖 ALTER VIEW view_name (column,.n) WITH ENCRYPTIONAS select_statement WITH CHECK OPTION 修改和重命名視圖1使用企業(yè)管理器重命名視圖使用企業(yè)管理器重命名視圖2使用系統(tǒng)存儲過程重命名視圖使用系統(tǒng)存儲過程重命名視圖 sp_r

8、ename old_name,new_name 使用視圖 1.1. 修改視圖中的數(shù)據(jù)時每次修改都只能影響一個基表。修改視圖中的數(shù)據(jù)時每次修改都只能影響一個基表。2.2. 不能修改那些通過計算得到的字段。不能修改那些通過計算得到的字段。3.3. 如果在創(chuàng)建視圖時指定了如果在創(chuàng)建視圖時指定了WITH CHECK OPTION選項,那么選項,那么所有使用視圖修改數(shù)據(jù)庫信息時,必須保證修改后的數(shù)據(jù)滿足所有使用視圖修改數(shù)據(jù)庫信息時,必須保證修改后的數(shù)據(jù)滿足視圖定義的范圍。視圖定義的范圍。4.4. 執(zhí)行執(zhí)行UPDATE、DELETE命令時,所刪除與更新的數(shù)據(jù)必須包命令時,所刪除與更新的數(shù)據(jù)必須包含在視圖的

9、結(jié)果集中。含在視圖的結(jié)果集中。5.5. 如果視圖引用多個表時,無法用如果視圖引用多個表時,無法用DELETE命令刪除數(shù)據(jù),若使命令刪除數(shù)據(jù),若使用用UPDATE命令則應(yīng)與命令則應(yīng)與INSERT操作一樣,被更新的列必須屬操作一樣,被更新的列必須屬于同一個表。于同一個表。 使用視圖通過視圖添加表數(shù)據(jù)1 插入數(shù)據(jù)記錄插入數(shù)據(jù)記錄 1使用企業(yè)管理器在視圖中插入記錄 2使用Transact-SQL語句通過視圖插入記錄可以使用可以使用insert語句向視圖中添加表數(shù)據(jù)。但是,語句向視圖中添加表數(shù)據(jù)。但是,使用使用insert語句在視圖中添加的數(shù)據(jù),將存儲在語句在視圖中添加的數(shù)據(jù),將存儲在視圖參照的數(shù)據(jù)表中

10、。視圖參照的數(shù)據(jù)表中。由于視圖的特性,通過視圖向數(shù)據(jù)表中添加數(shù)由于視圖的特性,通過視圖向數(shù)據(jù)表中添加數(shù)據(jù),必須滿足下列條件據(jù),必須滿足下列條件:使用視圖插入數(shù)據(jù)記錄1、使用、使用insert語句向數(shù)據(jù)表中插入數(shù)據(jù)的用戶必須在數(shù)據(jù)表中有語句向數(shù)據(jù)表中插入數(shù)據(jù)的用戶必須在數(shù)據(jù)表中有插入數(shù)據(jù)的權(quán)限。插入數(shù)據(jù)的權(quán)限。2、由于視圖通常只引用表中的部分字段,那些在視中未引用的、由于視圖通常只引用表中的部分字段,那些在視中未引用的字段必須知道在沒有指定取值的情況下如何填充數(shù)據(jù)。如字段必須知道在沒有指定取值的情況下如何填充數(shù)據(jù)。如:允許空、允許空、有默認(rèn)值等。有默認(rèn)值等。3、視圖中不能包含多個字段值的組合,或

11、包含了使統(tǒng)計函數(shù)的、視圖中不能包含多個字段值的組合,或包含了使統(tǒng)計函數(shù)的結(jié)果。結(jié)果。4、不能包含、不能包含distinct或或group by子句子句5、若使用了、若使用了with check option,則須符合則須符合where子句的插入條件。子句的插入條件。6、若視圖引用了多個數(shù)據(jù)表,則通過視圖向數(shù)據(jù)表添加數(shù)據(jù)時,、若視圖引用了多個數(shù)據(jù)表,則通過視圖向數(shù)據(jù)表添加數(shù)據(jù)時,這個語句只能指定同一個表中的字段。這個語句只能指定同一個表中的字段。 若希望通過一個引用了多個數(shù)據(jù)表的視圖中添加數(shù)據(jù)時,必須若希望通過一個引用了多個數(shù)據(jù)表的視圖中添加數(shù)據(jù)時,必須寫多個寫多個insert語句。語句。使用視

12、圖更新視圖中的數(shù)據(jù)2 更新數(shù)據(jù)記錄更新數(shù)據(jù)記錄 1使用企業(yè)管理器在視圖中更新記錄2使用Transact-SQL語句通過視圖更新記錄同樣,可以使用同樣,可以使用update語句,通過視圖對數(shù)據(jù)表中的語句,通過視圖對數(shù)據(jù)表中的數(shù)據(jù)進(jìn)行更新。數(shù)據(jù)進(jìn)行更新。注意注意:通過使用多個表的視圖對數(shù)據(jù)表進(jìn)行更新也需通過使用多個表的視圖對數(shù)據(jù)表進(jìn)行更新也需要書寫多個要書寫多個update語句。語句。適用與適用與insert操作的許多限制同樣適用與操作的許多限制同樣適用與update操作。操作。 使用視圖刪除數(shù)據(jù)記錄 3 刪除數(shù)據(jù)記錄刪除數(shù)據(jù)記錄 1使用企業(yè)管理器在視圖中刪除記錄 2使用Transact-SQL語句通過視圖刪除記錄 使用視圖刪除記錄時,可以直接利用Transact-SQL語言的DELETE語句刪除視圖中的記錄。但應(yīng)該注意,必

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論