視圖說課講解_第1頁
視圖說課講解_第2頁
視圖說課講解_第3頁
視圖說課講解_第4頁
視圖說課講解_第5頁
已閱讀5頁,還剩25頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

視圖視圖介紹創(chuàng)建和修改視圖通過視圖修改數(shù)據(jù)使用視圖優(yōu)化性能案例企業(yè)部門經(jīng)理要查詢所有客戶訂購的產(chǎn)品類別個數(shù)及產(chǎn)品數(shù)量,而且只有部門經(jīng)理以上職位的人才能參看。視圖介紹視圖用于間接的訪問其他的表或視圖中的數(shù)據(jù)。視圖是一種虛擬的表,并不真正存儲數(shù)據(jù),只是一個媒介的作用。在視圖中被查詢的表稱為基表。視圖的優(yōu)點定制數(shù)據(jù)讓不同的用戶以不同的方式看到不同或相同的數(shù)據(jù)集只關(guān)注于重要的或適當?shù)臄?shù)據(jù),限制對敏感數(shù)據(jù)的訪問簡化操作用戶直接查詢視圖,而不需要寫查詢語句或執(zhí)行腳本安全性不必對用戶賦予查詢基表中特定列的權(quán)限,而只需要賦予用戶查詢視圖的權(quán)限即可視圖視圖簡介創(chuàng)建和修改視圖通過視圖修改數(shù)據(jù)使用視圖優(yōu)化性能創(chuàng)建和修改視圖創(chuàng)建視圖更改和刪除視圖查找視圖定義信息創(chuàng)建視圖創(chuàng)建視圖可通過使用創(chuàng)建視圖向?qū)?、企業(yè)管理器或Transact-SQL語句創(chuàng)建視圖

執(zhí)行CREATEVIEW語句的用戶必須是sysadmin、db_owner或db_ddladmin角色的成員,或具有CREATEVIEW權(quán)限。在視圖中引用的所有表和視圖上,也要擁有SELECT權(quán)限CREATEVIEWdbo.ViwOrderSubtotals(OrderID,Subtotal)ASSELECTOD.OrderID,SUM(CONVERT(money,(OD.UnitPrice*Quantity*(1-Discount)/100))*100)FROM[OrderDetails]ODGROUPBYOD.OrderIDGO創(chuàng)建視圖(續(xù))視圖定義的限制僅當使用TOP關(guān)鍵字的時候,CREATEVIEW語句才能包括ORDERBY子句視圖不能引用臨時表視圖不能引用超過1024列在單一批處理中,CREATEVIEW語句不能和其他Transact-SQL語句組合使用示例聯(lián)接表的視圖創(chuàng)建視圖以提供一個方便地從兩個或多個聯(lián)接表中查看信息的方法OrderID1066310827104271045110515CustomerIDBONAP BONAP PICCO QUICKQUICK ~~~ ~~~ ~~~ ~~~ ~~~RequiredDate1997-09-241998-01-261997-02-241997-03-051997-05-07ShippedDate1997-10-031998-02-061997-03-031997-03-121997-05-23OrdersCustomersShipStatusViewUSENorthwindGOCREATEVIEWdbo.ShipStatusViewASSELECTOrderID,RequiredDate,ShippedDate,

ContactNameFROMCustomerscINNERJOINOrderso

ONc.CustomerID=O.CustomerIDWHERERequiredDate<ShippedDateCustomerIDBONAPPICCOQUICKCompanyNameBonapp'PiccoloundmehrQUICK-Stop ContactNameLaurenceLebihanGeorgPippsHorstKlossOrderID1026410271102801996-08-211996-08-291996-09-11 ShippedDate1996-08-231996-08-301996-09-12ContactNameLaurenceLebihanGeorgPippsHorstKloss隨堂練習查詢所有書籍的編號、書名、作者名查詢所有書籍的書名、作者人數(shù)、出版商名、總銷售量查看視圖定義信息查找視圖依賴:檢索特定視圖所依賴的表和視圖以及依賴特定視圖的對象企業(yè)管理器系統(tǒng)存儲過程sp_depends:sp_depends對象名查看視圖文本內(nèi)容

sp_helptext視圖名CREATEVIEWdbo.ViwOrderSubtotals(OrderID,Subtotal)

WITHENCRYPTION

ASSELECTOD.OrderID,SUM(CONVERT(money,(OD.UnitPrice*Quantity*(1-Discount)/100))*100)FROM[OrderDetails]ODGROUPBYOD.OrderIDGO創(chuàng)建視圖(續(xù))對視圖文本內(nèi)容進行加密使用該選項對視圖內(nèi)容進行加密更改和刪除視圖更改視圖:可更改一個視圖(包括索引視圖)的定義,但不影響相關(guān)的存儲過程或觸發(fā)器,也不更改權(quán)限

使用新的SELECT語句和選項代替原來的定義保留分配的權(quán)限ALTERVIEWdbo.ViwOrderSubtotals

ASSELECTOD.OrderID,sum(quantity)astotal_quantityFROM[OrderDetails]ODGROUPBYOD.OrderIDGO更改和刪除視圖(續(xù))刪除視圖:從數(shù)據(jù)庫中刪除視圖的定義和所有分配給它的權(quán)限語法:DROPVIEW{視圖名}[,...n]

DROPVIEW

dbo.ViwOrderSubtotals注意更改視圖語句不影響分配的權(quán)限刪除再重新創(chuàng)建視圖的話則需要重新分配權(quán)限視圖視圖簡介創(chuàng)建和修改視圖通過視圖修改數(shù)據(jù)使用視圖優(yōu)化性能通過視圖修改數(shù)據(jù)對視圖數(shù)據(jù)的修改實際上是對基表的修改一般來說,為了能通過視圖修改數(shù)據(jù),視圖必須定義在單個表上,在SELECT語句中不能包括聚合函數(shù)或GROUPBY子句createviewAuthorViewasselecta.au_id,a.au_lname,au_fname,a.contractfromauthorsaGOINSERTINTOAuthorView(au_id,au_lname,au_fname,contract)VALUES('315-41-6425','lfm','lfm1',1)GO通過視圖修改數(shù)據(jù)(續(xù))明確地說,通過視圖進行的修改不能影響超過一個的底層的表??梢孕薷膹膬蓚€或更多表得到的視圖,但是每次更新或修改只能影響一個表不能對某些列進行。不允許改變是某個計算的結(jié)果的列,例如包括計算值、內(nèi)建函數(shù)或行聚合函數(shù)的列。若視圖定義中指定了WITHCHECKOPTION選項,則修改被校驗,以符合SELECT語句中指明的標準。通過視圖修改數(shù)據(jù)(續(xù))createviewwa_publishersasselect*frompublisherswherestate='WA'INSERTINTOwa_publishers(pub_id,pub_name,city,state,country)VALUES(9994,'Hziee','Atlanda','GI','USA')對數(shù)據(jù)有效性的維護

建立一個視圖,功能是查詢來自“WA”州的出版商的情況。目的:通過此視圖,只能運行在“WA”州的出版商才可以插入數(shù)據(jù)。通過視圖修改數(shù)據(jù)(續(xù))INSERTINTOwa_publishers(pub_id,pub_name,city,state,country)VALUES(9994,'Hziee','Atlanda','GI','USA')對數(shù)據(jù)有效性的維護createviewwa_publishersasselect*frompublisherswherestate='WA'withcheckoption結(jié)果:通過此視圖插入數(shù)據(jù)失敗,實現(xiàn)了對數(shù)據(jù)有效性的維護。視圖視圖簡介創(chuàng)建和修改視圖通過視圖修改數(shù)據(jù)使用視圖優(yōu)化性能使用視圖優(yōu)化性能性能考慮使用索引視圖使用視圖來分區(qū)數(shù)據(jù)性能考慮USENorthwindGOCREATEVIEWdbo.TopSalesViewASSELECT*FROMdbo.TotalPurchaseViewWHERESubtotal>50000GOTotalPurchaseView1~~~~2~~~~3~~~~4~~~~5~~~~6~~~~Customers1~

~

~n

2~

~

~n

3~

~

~y

4~

~

~y

5~

~

~n

6~

~

~y

Orders1~

~

~n

2~

~

~n

3~

~

~y

4~

~

~y

5~

~

~n

6~

~

~y

OrderDetails1~

~

~~

2~

~

~~

3~

~

~~

4~

~

~~

5~

~

~~

6~

~

~~

SELECT*FROMdbo.TopSalesWHERECompanyName='ErnstHandel'TopSalesView~~~~~~~~~當聯(lián)接多個表并計算復雜的表達式的視圖嵌套在其他視圖中的時候,性能問題的來源可能會難以確定創(chuàng)建單獨的視圖定義,而不采用嵌套視圖使用索引視圖索引視圖:結(jié)果集保留在數(shù)據(jù)庫中并建立了索引以供快速訪問的視圖創(chuàng)建索引視圖的利弊有利:由于結(jié)果集已經(jīng)存儲在數(shù)據(jù)庫中,所以性能可以得到提升。不利:由于索引視圖要占用磁盤空間,所以系統(tǒng)產(chǎn)生一定的開銷。使用索引視圖(續(xù))下圖說明了使用索引視圖時一般能夠提高多少性能。提供的查詢復雜程度各不相同(例如,聚合計算的數(shù)量、所用表的數(shù)量或謂詞數(shù)),并包括來自實際生產(chǎn)環(huán)境的數(shù)百萬行的大表。使用索引視圖(續(xù))創(chuàng)建索引視圖的限制視圖上創(chuàng)建的第一個索引必須是惟一聚集索引,之后才可以在視圖上創(chuàng)建其他索引創(chuàng)建視圖時必須使用SCHEMABINDING選項視圖可以引用基表,但不能引用其他視圖索引視圖使用場合對檢索速度的要求高底層的數(shù)據(jù)很少更新查詢進行了大量的聯(lián)接和聚合操作,需要處理很多數(shù)據(jù)行或被很多用戶頻繁調(diào)用創(chuàng)建索引視圖先創(chuàng)建視圖CREATEVIEW[Indexed_View]WITHSCHEMABINDINGASSelectemployeeid,lastname+’-’+fristnameas[name]fromdbo.employeesGO再創(chuàng)建索引CREATEUNIQUECLUSTEREDINDEXCLU_Indexed_ViewONIndexed_View(EmployeeID)必須要寫對象名必須由2部分組成使用視圖來分區(qū)數(shù)據(jù)SQLServer如何使用視圖來分區(qū)數(shù)據(jù)在一個視圖內(nèi)可以使用UNION集合操作將來自于不同表的兩個或多個查詢的結(jié)果合并成單個結(jié)果集,這對用戶來說就像是一個表,稱為分區(qū)視圖分區(qū)視圖可以基于多個異構(gòu)數(shù)據(jù)源的數(shù)據(jù),這樣可以將數(shù)據(jù)庫處理過程分布到一組服務(wù)器上分區(qū)視圖如何改善性能分區(qū)視圖內(nèi)的表在不同服務(wù)器上,或在一臺具有多個處理器的計算機上,可以并發(fā)掃描查詢所涉及的每個表維護任務(wù)可以進行得更快,因為每個數(shù)據(jù)集較小使用視圖來分區(qū)數(shù)據(jù)(續(xù))表BB~~~~~~~~Server2CustomerA~~~~

溫馨提示

  • 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

提交評論