SQL Server數(shù)據(jù)庫及應(yīng)用(第二版)課件:視圖的創(chuàng)建與使用_第1頁
SQL Server數(shù)據(jù)庫及應(yīng)用(第二版)課件:視圖的創(chuàng)建與使用_第2頁
SQL Server數(shù)據(jù)庫及應(yīng)用(第二版)課件:視圖的創(chuàng)建與使用_第3頁
SQL Server數(shù)據(jù)庫及應(yīng)用(第二版)課件:視圖的創(chuàng)建與使用_第4頁
SQL Server數(shù)據(jù)庫及應(yīng)用(第二版)課件:視圖的創(chuàng)建與使用_第5頁
已閱讀5頁,還剩32頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

視圖的創(chuàng)建與使用本章學(xué)習(xí)目標(biāo)了解視圖和數(shù)據(jù)表之間的主要區(qū)別了解視圖的優(yōu)點(diǎn)熟練掌握創(chuàng)建、修改和刪除視圖的方法掌握查看視圖信息的方法掌握通過視圖修改數(shù)據(jù)表的方法6.1概述6.1.1視圖的概念視圖是一種數(shù)據(jù)庫對象,是從一個或者多個數(shù)據(jù)表或視圖中導(dǎo)出的虛表,視圖所對應(yīng)的數(shù)據(jù)并不真正地存儲在視圖中,而是存儲在所引用的數(shù)據(jù)表中,視圖的結(jié)構(gòu)和數(shù)據(jù)是對數(shù)據(jù)表進(jìn)行查詢的結(jié)果。根據(jù)創(chuàng)建視圖時給定的條件,視圖可以是一個數(shù)據(jù)表的一部分,也可以是多個基表的聯(lián)合,它存儲了要執(zhí)行檢索的查詢語句的定義,以便在引用該視圖時使用。6.1.1視圖的概念對視圖中數(shù)據(jù)的操作與對表中數(shù)據(jù)的操作一樣,可以對其進(jìn)行查詢、插入、更新和刪除,但對數(shù)據(jù)的操作要滿足一定的條件。通過視圖進(jìn)行數(shù)據(jù)修改時,其實(shí)修改的是相應(yīng)基本表中的數(shù)據(jù),同時,若基本表的數(shù)據(jù)發(fā)生變化,這種變化也會自動地反映到視圖中。6.1.2視圖的優(yōu)點(diǎn)簡化數(shù)據(jù)操作著重于特定數(shù)據(jù)視圖提供了一個簡單而有效的安全機(jī)制自定義數(shù)據(jù)6.2創(chuàng)建視圖創(chuàng)建視圖主要有兩種方法:使用SSMS和T-SQL中的CREATEVIEW語句。創(chuàng)建視圖之前,應(yīng)考慮以下基本原則:只能在當(dāng)前數(shù)據(jù)庫中創(chuàng)建視圖。視圖名稱必須遵循標(biāo)識符的規(guī)則,且對每個架構(gòu)都必須唯一??梢砸罁?jù)現(xiàn)有視圖創(chuàng)建新的視圖。必須獲取由數(shù)據(jù)庫所有者授予的創(chuàng)建視圖的權(quán)限。6.2.1使用SSMS創(chuàng)建視圖在SSMS中,展開指定的服務(wù)器和數(shù)據(jù)庫,并右擊其中的“視圖”文件夾,從彈出的快捷菜單中選擇“新建視圖”選項(xiàng)。會出現(xiàn)“添加表”對話框,在這里選擇創(chuàng)建視圖所要使用的數(shù)據(jù)表或已有的視圖。(3)在創(chuàng)建視圖窗口中,既可以在窗口的下部鍵入建立視圖的T-SQL語句,也可以用鼠標(biāo)在上部的數(shù)據(jù)表中選擇視圖中要使用的字段。6.2.2使用T-SQL語句創(chuàng)建視圖使用T-SQL中的CREATEVIEW語句創(chuàng)建視圖,其語法形式如下:CREATEVIEW[schema_name.]view_name[(column[,...n])][WITHENCRYPTION]ASselect_statement[WITHCHECKOPTION][;]6.2.2使用T-SQL語句創(chuàng)建視圖其中,各參數(shù)的說明如下:schema_name:視圖所屬架構(gòu)的名稱。view_name:視圖的名稱。column:視圖中的列使用的名稱。AS:指定視圖要執(zhí)行的操作。select_statement:定義視圖的SELECT語句。6.2.2使用T-SQL語句創(chuàng)建視圖CHECKOPTION:強(qiáng)制針對視圖執(zhí)行的所有數(shù)據(jù)修改語句都必須符合在select_statement中設(shè)置的條件。ENCRYPTION:對視圖文本進(jìn)行加密。例6-2:在AWLT數(shù)據(jù)庫中創(chuàng)建一個視圖vw_ProductInfo,要求查詢產(chǎn)品類別編號為35的產(chǎn)品基本信息,包括產(chǎn)品編號、產(chǎn)品名稱、顏色、大小和重量字段。6.2.2使用T-SQL語句創(chuàng)建視圖例6-3:在AWLT數(shù)據(jù)庫中創(chuàng)建一個視圖vw_ProductSellInfo,要求查詢產(chǎn)品類別編號為35的產(chǎn)品銷售信息,包括產(chǎn)品編號、產(chǎn)品名稱、銷售訂單詳細(xì)信息編號和銷售數(shù)量字段。并加密視圖的定義。例6-4:在AWLT數(shù)據(jù)庫中創(chuàng)建一個視圖vw_ProductSellQty,要求查詢2000年12月31日以后銷售的各產(chǎn)品的產(chǎn)品編號和銷售總數(shù)量。6.3查看視圖在SQLServer中,可以通過SSMS或者使用系統(tǒng)存儲過程來查看視圖信息。6.3.1使用SSMS查看視圖信息在SSMS中,選擇指定的服務(wù)器和數(shù)據(jù)庫,展開其中的“視圖”選項(xiàng),可以顯示出數(shù)據(jù)庫中的所有視圖。要想查看某個視圖詳細(xì)的信息,可以在“視圖屬性”對話框中可以查看視圖的詳細(xì)信息。(3)在“對象依賴關(guān)系”對話框中可以查看該視圖依賴的對象和依賴于該視圖的對象。(4)右擊某個視圖的名稱,從彈出的快捷菜單中選擇“選擇前1000行”選項(xiàng),在SSMS中就會顯示該視圖的輸出數(shù)據(jù)。6.3.2使用系統(tǒng)存儲過程查看視圖信息系統(tǒng)存儲過程sp_help可以顯示數(shù)據(jù)庫對象的特征信息,sp_depends可以顯示數(shù)據(jù)庫對象所依賴的對象,它們可以在任何數(shù)據(jù)庫對象上運(yùn)行。sp_helptext可以用于顯示視圖、觸發(fā)器或存儲過程等在系統(tǒng)表中的定義。它們的語法形式分別如下:sp_help數(shù)據(jù)庫對象名稱sp_helptext視圖(觸發(fā)器、存儲過程)sp_depends數(shù)據(jù)庫對象名稱6.3.2使用系統(tǒng)存儲過程查看視圖信息例6-5:(1)使用系統(tǒng)存儲過程sp_help顯示vw_SalesOrder_Customer視圖的特征信息。(2)使用sp_helptext顯示vw_ProductInfo視圖在系統(tǒng)表中的定義。(3)查看加密視圖vw_ProductSellInfo的定義信息。(4)使用sp_depends顯示vw_ProductSellQty視圖所依賴的對象。6.4修改視圖如果已定義的視圖不能滿足用戶要求時,可以使用SSMS或T-SQL語句修改視圖的定義。6.4.1使用SSMS修改視圖在SSMS中,右擊要修改的視圖名稱,從彈出的快捷菜單中選擇“設(shè)計”選項(xiàng),則會出現(xiàn)與創(chuàng)建視圖時類似的窗口。在該窗口中,可以按照創(chuàng)建視圖的方法修改視圖的定義??梢允褂肨-SQL中的ALTERVIEW語句修改視圖:ALTERVIEW[schema_name.]view_name[(column[,...n])][WITHENCRYPTION]ASselect_statement[WITHCHECKOPTION][;]6.4.2

使用T-SQL語句修改視圖注意:如果原來的視圖定義是用WITHENCRYPTION或WITHCHECKOPTION創(chuàng)建的,那么只有在ALTERVIEW中也包含這些選項(xiàng)時,這些選項(xiàng)才有效。例6-6:修改視圖vw_ProductSellInfo,在該視圖中增加一個新的條件,要求只顯示定購數(shù)量大于10的產(chǎn)品的基本信息。6.4.2

使用T-SQL語句修改視圖6.5使用視圖通過視圖可以方便地檢索數(shù)據(jù),并可以修改基本表的數(shù)據(jù),使用視圖修改數(shù)據(jù)時,需要注意以下幾點(diǎn):任何修改都只能引用一個基表的列。在視圖中修改的列必須直接引用表列中的基礎(chǔ)數(shù)據(jù)。使用集合運(yùn)算符得出的計算結(jié)果不可更新。被修改的列不受GROUPBY、HAVING或DISTINCT子句的影響。INSERT語句必須為不允許空值并且沒有DEFAULT定義的基本表中的所有列指定值。修改的數(shù)據(jù)必須符合對這些列的約束,例如為空性、約束及DEFAULT定義等。6.5.1插入數(shù)據(jù)1.使用SSMS通過視圖插入數(shù)據(jù)具體方法是:在SSMS中,打開要插入記錄的數(shù)據(jù)表對應(yīng)的視圖,在返回的數(shù)據(jù)記錄的最下面一行中直接插入新記錄即可。6.5.1插入數(shù)據(jù)2.使用T-SQL語句通過視圖插入數(shù)據(jù)注意:如果視圖創(chuàng)建時定義了限制條件或者基本表的列允許空值或有默認(rèn)值,而插入的記錄不滿足該條件時,此時,仍然可以向表中插入記錄,只是用視圖檢索時不會顯示出新插入的記錄。如果不想讓這種情況發(fā)生,則可以使用WITHCHECKOPTION選項(xiàng)限制插入不符合視圖規(guī)則的視圖。這樣,在插入記錄時,如果記錄不符合限制條件就不能插入。6.5.1插入數(shù)據(jù)例6-7:在AWLT數(shù)據(jù)庫下創(chuàng)建一個新的數(shù)據(jù)表,并在該數(shù)據(jù)表上創(chuàng)建一個視圖,使用INSERT語句向該視圖中插入一條記錄。例6-8:創(chuàng)建一個包含限制條件的視圖vw_NotAllowR,限制條件為查詢上題創(chuàng)建的表Table1中column_2列以字母R開頭的所有記錄。然后插入了一條不滿足限制條件的記錄,再用SELECT語句檢索視圖和表。例6-9:在例子6-8的基礎(chǔ)上添加WITHCHECKOPTION選項(xiàng)。6.5.2更新數(shù)據(jù)1.使用SSMS通過視圖更新數(shù)據(jù)具體方法是:在SSMS中,打開要更新記錄的視圖,在返回的數(shù)據(jù)記錄窗口中直接修改記錄即可。2.使用T-SQL語句通過視圖更新數(shù)據(jù)例6-10:修改視圖vw_NotAllowR中column_1的值為1的記錄的column_2列的值為“Row2”。6.5.3刪除數(shù)據(jù)1.使用SSMS通過視圖刪除數(shù)據(jù)具體方法是:在SSMS中,打開要刪除記錄的視圖,在返回的數(shù)據(jù)記錄窗口中直接刪除記錄即可。6.5.3刪除數(shù)據(jù)2.使用T-SQL語句通過視圖刪除數(shù)據(jù)使用視圖刪除記錄時,可以直接利用T-SQL的DELETE語句刪除視圖中的記錄。但應(yīng)該注意,如果有刪除條件,則WHERE條件中使用到的字段必須是在視圖中定義過的字段。例6-11:在視圖vw_NotAllowR_Only中,先插入一條記錄,然后刪除此條記錄。6.6刪除視圖7.6.1使用SSMS刪除視圖在對象資源管理器窗口中,選擇相應(yīng)數(shù)據(jù)庫下要刪除的視圖,右擊該視圖名稱,從彈出的快捷菜單中選擇“刪除”選項(xiàng),會出現(xiàn)“刪除對象”對話框。在“刪除對象”對話框中單擊“確定”按鈕,即可刪除該視圖。注意:在確認(rèn)刪除之前,應(yīng)該查看視圖的依賴關(guān)系窗口,查看是否有數(shù)據(jù)庫對象依賴于將被刪除的視圖。如果存在這樣的對象,那么首先確定是否還有必要保留該對象,如果不必繼續(xù)保存,可以直接刪除掉該視圖,否則只能放棄刪除。6.6.2使用T-SQL語句刪除視圖可以使用T-SQL中的DROPVIEW語句刪除視圖,其語法形式如下:DROPVIEW{view_name}[,…n]例6-12:刪除視圖vw_NotAllowR和視圖vw_NotAllowR_Only。本章小結(jié)視圖是一種數(shù)據(jù)庫對象,是從一個或者多個數(shù)據(jù)表或視圖中導(dǎo)出的虛表。視圖所對應(yīng)的數(shù)據(jù)存儲在所引用的數(shù)據(jù)表中。視圖的結(jié)構(gòu)和數(shù)據(jù)是對數(shù)據(jù)表進(jìn)行查詢的結(jié)果??梢詫ζ溥M(jìn)行查詢、插入、更新和刪除,但對數(shù)據(jù)的操作要滿足一定的條件。本章小結(jié)使用視圖的優(yōu)點(diǎn)創(chuàng)建視圖的方法使用SSMS使用T-SQL中的CREATEVIEW修改視圖的方法使用SSMS使用T-SQL中的ALTERVIEW刪除視圖的方法使用SSMS使用T-SQL中的DROPVIEW本章小結(jié)查看視圖的方法使用SSMS使用系統(tǒng)存儲過程sp_help可以顯示數(shù)據(jù)庫對象的特征信息sp_depends可以顯示數(shù)據(jù)庫對象所依賴的對象sp_helptext可以用于顯示視圖、觸發(fā)器或存儲過程等在系統(tǒng)表中的定義使用視圖修改數(shù)據(jù)時,需要注意一些限制條件。習(xí)題六一、填空題1.視圖是從一個或者多個數(shù)據(jù)表或視圖中導(dǎo)出的

。2.?dāng)?shù)據(jù)庫中只存放視圖的

。3.視圖的修改可以引用

基表的列。4.在視圖中通過表達(dá)式計算出來的列

直接修改。5.T-SQL語言中創(chuàng)建視圖應(yīng)使用

語句。習(xí)題六二、簡答題1.視圖和數(shù)據(jù)表之間的主要區(qū)別是什么?2.使用視圖的優(yōu)點(diǎn)有哪些?習(xí)題六三、應(yīng)用題1.創(chuà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

提交評論