數據庫原理與應用:第8章 視圖的創建和使用_第1頁
數據庫原理與應用:第8章 視圖的創建和使用_第2頁
數據庫原理與應用:第8章 視圖的創建和使用_第3頁
數據庫原理與應用:第8章 視圖的創建和使用_第4頁
數據庫原理與應用:第8章 視圖的創建和使用_第5頁
已閱讀5頁,還剩11頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、數據庫原理與應用數據庫原理與應用第八講第八講 視圖的創建和使用視圖的創建和使用 視圖視圖概述概述 創建視圖創建視圖 查看視圖信息查看視圖信息 修改和重命名視圖修改和重命名視圖 使用視圖使用視圖 本講主要內容 概述視圖的概念視圖的概念 視圖是一種數據庫對象,是從一個或者多個數據表或視視圖是一種數據庫對象,是從一個或者多個數據表或視圖中導出的虛表,視圖的結構和數據是對數據表進行查詢的圖中導出的虛表,視圖的結構和數據是對數據表進行查詢的結果。結果。視圖被定義后便存儲在數據庫中,通過視圖看到的數據視圖被定義后便存儲在數據庫中,通過視圖看到的數據只是存放在基表中的數據。當對通過視圖看到的數據進行修只是存

2、放在基表中的數據。當對通過視圖看到的數據進行修改時,相應的基表的數據也會發生變化,同時,若基表的數改時,相應的基表的數據也會發生變化,同時,若基表的數據發生變化,這種變化也會自動地反映到視圖中。據發生變化,這種變化也會自動地反映到視圖中。視圖可以是一個數據表的一部分,也可以是多個基表的視圖可以是一個數據表的一部分,也可以是多個基表的聯合。聯合。使用視圖的優點和作用 可以使視圖集中數據、簡化和定制不同用戶對數據庫的不同數據要求。可以使視圖集中數據、簡化和定制不同用戶對數據庫的不同數據要求。 使用視圖可以屏蔽數據的復雜性,用戶不必了解數據庫的結構,就可以使用視圖可以屏蔽數據的復雜性,用戶不必了解數

3、據庫的結構,就可以方便地使用和管理數據,簡化數據權限管理和重新組織數據以便輸出到其方便地使用和管理數據,簡化數據權限管理和重新組織數據以便輸出到其他應用程序中。他應用程序中。 視圖可以使用戶只關心他感興趣的某些特定數據和他們所負責的特定任視圖可以使用戶只關心他感興趣的某些特定數據和他們所負責的特定任務,而那些不需要的或者無用的數據則不在視圖中顯示。務,而那些不需要的或者無用的數據則不在視圖中顯示。 視圖大大地簡化了用戶對數據的操作。視圖大大地簡化了用戶對數據的操作。視圖可以讓不同的用戶以不同的方式看到不同或者相同的數據集。視圖可以讓不同的用戶以不同的方式看到不同或者相同的數據集。 在某些情況下

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

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

6、、使用企業管理器創建視圖 2、使用、使用Transact-SQL語句創建視圖語句創建視圖 CREATE VIEW . . view_name ( column ,.n ) WITH ,.n ASselect_statement WITH CHECK OPTION := ENCRYPTION | SCHEMABINDING | VIEW_METADATA 3 3、使用向導創建視圖、使用向導創建視圖 查看視圖信息 1 1 使用企業管理器查看視圖信息使用企業管理器查看視圖信息 2 2 使用系統存儲過程查看視圖信息使用系統存儲過程查看視圖信息 sp_help sp_help 數據庫對象名稱數據庫對象名

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

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

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

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

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

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

溫馨提示

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

評論

0/150

提交評論