視圖的操作與管理_第1頁
視圖的操作與管理_第2頁
視圖的操作與管理_第3頁
視圖的操作與管理_第4頁
視圖的操作與管理_第5頁
已閱讀5頁,還剩16頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

視圖的操作與管理第1頁/共21頁7.1創(chuàng)建視圖

SQLServer2005提供了如下幾種創(chuàng)建視圖的方法:(1)用SQLSERVER管理平臺創(chuàng)建視圖;(2)用Transact-SQL語句中的CREATEVIEW命令創(chuàng)建視圖;(3)利用SQLSERVER管理平臺的視圖模板來創(chuàng)建視圖。

創(chuàng)建視圖時應該注意以下情況:(1)只能在當前數(shù)據(jù)庫中創(chuàng)建視圖,在視圖中最多只能引用1024列,視圖中記錄的數(shù)目限制只由其基表中的記錄數(shù)決定。(2)如果視圖引用的基表或者視圖被刪除,則該視圖不能再被使用,直到創(chuàng)建新的基表或者視圖。(3)如果視圖中某一列是函數(shù)、數(shù)學表達式、常量或者來自多個表的列名相同,則必須為列定義名稱。(4)不能在視圖上創(chuàng)建索引,不能在規(guī)則、默認、觸發(fā)器的定義中引用視圖。(5)當通過視圖查詢數(shù)據(jù)時,SQLServer要檢查以確保語句中涉及的所有數(shù)據(jù)庫對象存在,每個數(shù)據(jù)庫對象在語句的上下文中有效,而且數(shù)據(jù)修改語句不能違反數(shù)據(jù)完整性規(guī)則。(6)視圖的名稱必須遵循標識符的規(guī)則,且對每個用戶必須是惟一的。此外,該名稱不得與該用戶擁有的任何表的名稱相同。第2頁/共21頁7.1.1利用SQLSERVER管理平臺創(chuàng)建視圖

利用SQLSERVER管理平臺創(chuàng)建視圖的具體操作步驟如下:(1)在SQLSERVER管理平臺中,展開指定的服務器,打開要創(chuàng)建視圖的數(shù)據(jù)庫文件夾,選擇指定的數(shù)據(jù)庫,右擊該數(shù)據(jù)庫圖標,從彈出的快捷菜單中依次選擇“新建(New)→視圖”選項,如圖7-1所示。接著就出現(xiàn)添加表、視圖、函數(shù)對話框。如圖7-2所示。圖7-1選擇新建視圖選項對話框

圖7-2添加表、視圖、函數(shù)對話框

第3頁/共21頁7.1.1利用SQLSERVER管理平臺創(chuàng)建視圖

(2)選擇好創(chuàng)建視圖所需的表、視圖、函數(shù)后,通過單擊字段左邊的復選框選擇需要的字段,如圖7-3所示。單擊工具欄中的“保存”按鈕,或者單擊鼠標右鍵,從快捷菜單中選擇保存選項保存視圖,輸入視圖名,即可完成視圖的創(chuàng)建。圖7-3選擇視圖字段對話框

第4頁/共21頁7.1.2利用Transact-SQL語句中的CREATEVIEW命令創(chuàng)建視圖

使用Transact-SQL語句中的CREATEVIEW創(chuàng)建視圖,其語法形式如下:CREATEVIEW[schema_name.]view_name[(column[,...n])]

[WITH<view_attribute>[,...n]]

AS

select_statement

[WITHCHECKOPTION]

<view_attribute>::=

{ENCRYPTION|SCHEMABINDING|VIEW_METADATA}第5頁/共21頁7.1.2利用Transact-SQL語句中的CREATEVIEW命令創(chuàng)建視圖

例7-1

選擇表s和sc中的部分字段和記錄來創(chuàng)建一個視圖,并且限制表s中的記錄只能是計算機系的記錄集合,視圖定義為view_s。程序清單如下:createviewview_,s.age,s.sex,o,sc.scorefroms,scwheres.sno=sc.snoands.dept=’計算機’例7-2

創(chuàng)建一個視圖,使之包含復雜的查詢。程序清單如下:CREATEVIEWExampleViewWITHSCHEMABINDINGASSELECTsno,SUM(score)ASSumscore,COUNT(*)ASCountColFROMscGROUPBYsno第6頁/共21頁7.1.2利用Transact-SQL語句中的CREATEVIEW命令創(chuàng)建視圖

例7-3

創(chuàng)建一個視圖,使之包含字符串的運算。程序清單如下:CREATEVIEWv_shyjl(shyxh,shj,xm,jglb,phr,bzh)ASSelectdistinctshyxh,substring(shj,1,10)+""+zhi,t01_shbshy.xm,t012_shyjl.jglb,t012_shyjl.phr,t012_shyjl.bzhfromt01_shbshy,t012_shyjlwheret012_shyjl.xm=t01_shbshy.xm其中shj列是從基表中取出兩列并和一空字符串相加而得到的。這些都為基表中字段間的靈活運算提供了極大方便,從而使我們可以隨心所欲地定制符合自己要求的數(shù)據(jù)。第7頁/共21頁7.1.3利用模板創(chuàng)建視圖

使用視圖模板可以很容易地創(chuàng)建視圖,其具體操作步驟如下;(1)在SQLSERVER管理平臺中,選擇view菜單中的“模板資源管理器”選項,如圖7-4所示。(2)在出現(xiàn)的“模板資源管理器”選項中選擇“創(chuàng)建視圖”選項,如圖7-5所示。(3)按照提示輸入視圖名稱,select語句后,執(zhí)行此語句,即可創(chuàng)建視圖。

圖7-4選擇工具菜單中的向?qū)?/p>

圖7-5創(chuàng)建視圖模板

第8頁/共21頁7.2修改、刪除和重命名視圖

7.2.1修改視圖7.2.2重命名視圖7.2.3查看視圖信息、刪除視圖

第9頁/共21頁7.2.1修改視圖

修改視圖的方法有以下兩種方法:(1)在SQLSERVER管理平臺中,右擊要修改的視圖,從彈出的快捷菜單中選擇“設(shè)計視圖”選項,出現(xiàn)視圖修改對話框。該對話框與創(chuàng)建視圖時的對話框相同,可以按照創(chuàng)建視圖的方法修改視圖。(2)使用ALTERVIEW語句修改視圖,但首先必須擁有使用視圖的權(quán)限,然后才能使用ALTERVIEW語句,該語句的語法形式如下:

ALTERVIEWview_name[(column[,...n])][WITHENCRYPTION]ASselect_statement

[WITHCHECKOPTION第10頁/共21頁7.2.1修改視圖

例7-4

修改了視圖V_employees,在該視圖中增加了新的字段employees.salary,并且定義一個新的字段名稱e_salary。程序清單如下:alterviewdbo.employees(number,name,age,e_salary)asselectnumber,name,age,salaryfromemployeeswherename=’張三’第11頁/共21頁7.2.2重命名視圖

重命名視圖方法有以下兩種:1.在SQLSERVER管理平臺中,選擇要修改名稱的視圖,并右擊該視圖,從彈出的快捷菜單中選擇“重命名”選項?;蛘咴谝晥D上再次單擊,也可以修改視圖的名稱。接著該視圖的名稱變成可輸入狀態(tài),可以直接輸入新的視圖名稱。2.使用系統(tǒng)存儲過程sp_rename來修改視圖的名稱,該過程的語法形式如下:

sp_renameold_name,new_name例7-5

把視圖v_all重命名為v_part。程序清單如下:

sp_renamev_all,v_part第12頁/共21頁7.2.3查看視圖信息、刪除視圖

1.查看視圖信息可以使用系統(tǒng)存儲過程sp_help顯示視圖特征,使用sp_helptext顯示視圖在系統(tǒng)表中的定義,使用sp_depends顯示該視圖所依賴的對象。使用SQLServer查詢分析器可以方便地顯示視圖屬性信息,如圖7-7所示。圖7-8顯示了使用sp_helptext存儲過程顯示視圖的創(chuàng)建語句。圖7-7顯示視圖屬性對話框

圖7-8顯示視圖創(chuàng)建語句

第13頁/共21頁7.2.3查看視圖信息、刪除視圖

1.查看視圖信息利用select語句或SQLSERVER管理平臺可以查看視圖的輸出數(shù)據(jù)。在SQLSERVER管理平臺中,右擊某個視圖的名稱,從彈出的快捷菜單中選擇“打開視圖”選項,在SQLSERVER管理平臺中就會顯示該視圖的輸出數(shù)據(jù),如圖7-9所示。圖7-9視圖輸出數(shù)據(jù)窗口

第14頁/共21頁7.2.3查看視圖信息、刪除視圖

2.刪除視圖對于不再使用的視圖,可以使用SQLSERVER管理平臺或者Transact-SQL語句中的DROPVIEW命令刪除它。使用Transact-SQL語句DROPVIEW刪除視圖,其語法形式如下:DROPVIEW{view_name}[,…n]可以使用該命令同時刪除多個視圖,只需在要刪除的各視圖名稱之間用逗號隔開即可。例7-6同時刪除視圖v_student和v_teacher。程序清單如下:dropviewv_student,v_teacher第15頁/共21頁7.3通過視圖修改記錄

使用視圖修改數(shù)據(jù)時,需要注意以下幾點:(1)修改視圖中的數(shù)據(jù)時,不能同時修改兩個或者多個基表,可以對基于兩個或多個基表或者視圖的視圖進行修改,但是每次修改都只能影響一個基表。(2)不能修改那些通過計算得到的字段,例如包含計算值或者合計函數(shù)的字段。(3)如果在創(chuàng)建視圖時指定了WITHCHECKOPTION選項,那么使用視圖修改數(shù)據(jù)庫信息時,必須保證修改后的數(shù)據(jù)滿足視圖定義的范圍。(4)執(zhí)行UPDATE、DELETE命令時,所刪除與更新的數(shù)據(jù)必須包含在視圖的結(jié)果集中。(5)如果視圖引用多個表時,無法用DELETE命令刪除數(shù)據(jù),若使用UPDATE命令則應與INSERT操作一樣,被更新的列必須屬于同一個表。第16頁/共21頁7.3.1插入數(shù)據(jù)記錄

例7-7

創(chuàng)建一個基于表employees的新視圖v_employees。程序清單如下:createviewv_employees(number,name,age,sex,salary)asselectnumber,name,age,sex,salaryfromemployeeswherename=’張三’執(zhí)行以下語句可向表employees中添加一條新的數(shù)據(jù)記錄:Insertintov_employeesValues(001,’李力’,22,’m’,2000)第17頁/共21頁7.3.1插入數(shù)據(jù)記錄

例7-8

首先創(chuàng)建一個包含限制條件的視圖v_employee2,限制條件為工資>2000,然后插入了一條不滿足限制條件的記錄,再用SELECT語句檢索視圖和表。程序清單如下:createviewv_employee2asselect*fromemployeewhere工資>2000goinsertintov_employee2values(002,’王則’,30,’f’,1000)goselect*fromemployeegoselect*fromv_employee2go第18頁/共21頁7.3.1插入數(shù)據(jù)記錄

例7-9

在例子7-8的基礎(chǔ)上添加WITHCHECKOPTION選項。程序清單如下:createviewv_employee3asselect*fromemployeewhere工資>2000withcheckoptiongoinsertintov_employee3values(002,’王則’,30,’f’,1000)goselect*fromv_employee3go運行該程序?qū)@示如下出錯信息:Server:Msg550,Level16,State1,Line1TheattemptedinsertorupdatefailedbecausethetargetvieweitherspecifiesWITHCHECKOPTIONorspansaviewthatspecifiesWITHCHECKOPTIONan

溫馨提示

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

評論

0/150

提交評論