版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第6章視圖的創(chuàng)建與使用第6章視圖的創(chuàng)建與使用6.1視圖簡介6.1.1視圖的概念視圖是一種數據庫對象,它為用戶提供了一種對源數據可定制查詢、且可修改的工具
通常視圖又稱虛擬表(VirtualTable),能象表一樣操作,即可對視圖進行查詢、插入、更新與刪除
注意:視圖、表、查詢的相同與不同6.1視圖簡介6.1.1視圖的概念注意:視圖、表、查外研版四年級英語Module10Unit1We-have-a-big-family-dinner外研版四年級英語Module10Unit1We-have-a-big-family-dinner6.2創(chuàng)建視圖創(chuàng)建視圖的常用工具使用企業(yè)管理器創(chuàng)建使用Transact-SQL語句創(chuàng)建6.2創(chuàng)建視圖創(chuàng)建視圖的常用工具6.2.1使用企業(yè)管理器創(chuàng)建(1)進入新建視圖對話框
右擊創(chuàng)建視圖的數據庫6.2.1使用企業(yè)管理器創(chuàng)建右擊創(chuàng)建視圖的數據庫(2)為視圖選擇數據源
選擇表,并添加到右擊鼠標數據源可以是表、其他視圖或函數(2)為視圖選擇數據源選擇表,并添加到右擊鼠標數據源可以是此處選擇三個表作為數據源此處選擇三個(3)選擇視圖的輸出字段(表達式)
通過單擊字段左邊復選框選擇字段
所選字段視圖的查詢語句(3)選擇視圖的輸出字段(表達式)通過單擊字段左邊所選視圖在該圖中的其他復選框的含義如下:“輸出”復選框表示在輸出結果中是否顯示該字段內容;“準則”復選框中可以輸入該字段的限制條件,用來限制記錄的輸出“排序類型”復選框表示新建視圖的運行結果按照該字段的升序或降序排列?!盎颉睆瓦x框表示可以為該字段輸入多個邏輯關系為“或”的限制條件若為該字段輸入邏輯關系為“與”的限制條件可在下邊的Transact-SQL語句中用“AND”輸入。注:由以上復選框的設置可自動生成視圖的查詢語句也可在上圖中由用戶修改或重新輸入在該圖中的其他復選框的含義如下:注:由以上復選框的設置可自動視圖屬性對話框中的有關選項的含義如下:“DISTINCT值”表示在視圖的運行結果中是否顯示重復記錄。“加密瀏覽”實現對視圖定義加密,一旦對視圖進行加密以后將不能對視圖的定義進行查看或修改?!绊敹恕睆瓦x框可以限制視圖的最多輸出記錄條數。視圖屬性對話框中的有關選項的含義如下:(4)在視圖設計窗口中單擊工具欄中的按鈕運行視圖(5)點擊“保存”按扭保存完成視圖的創(chuàng)建(4)在視圖設計窗口中單擊工具欄中的按鈕運行視圖定制視圖屬性視圖屬性對話框定制視圖屬性視圖屬性對話框6.2.2使用Transact-SQL語句創(chuàng)建其語法格式如下:CREATEVIEW[<database_name>.][<owner>.]view_name[(column[,...n])]
[WITH<view_attribute>[,...n]]
AS
select_statement
[WITHCHECKOPTION]<view_attribute>::={ENCRYPTION|SCHEMABINDING|VIEW_METADATA}6.2.2使用Transact-SQL語句創(chuàng)建database_name:指定了被創(chuàng)建的視圖對象所在數據庫名稱
Owner:用于指定視圖的所有者的名稱
view_name:用于指定新建視圖的名稱
Column:用于指定視圖中的字段的名稱
ENCRYPTION:表示將新建的視圖加密SCHEMABINDING:表示在select_statement語句中如果包含表、視圖或者引用戶自定義函數,則表名、視圖名或者函數名前必須包含所有者前綴
VIEW_METADATA:表示如果某一查詢中引用該視圖且要求返回瀏覽模式的元數據時,那么SQLServer將向DBLIB和OLEDBAPLS返回視圖的元數據信息
select_statement:用于創(chuàng)建視圖的SELECT語句
WITHCHECKOPTION:用于強制視圖上執(zhí)行的所有數據修改語句都必須符合由select_statement設置的準則
必須是數據庫中現有用戶名
database_name:指定了被創(chuàng)建的視圖對象所在數據庫例6_1:利用Salers表查詢銷售員的編號、姓名、性別、地址。UsesalesGOCREATEVIEWdbo.V_Salers(編號,姓名,性別,地址)ASSELECTSaleID,Salename,Sex,AddressFROMSalers例6_1:利用Salers表查詢銷售員的編號、姓名、性別、地例6-2:在sales數據庫中創(chuàng)建如下視圖:利用Custmoers、Orders、OrderDetails三個表來查詢定單數量在50和100之間的客戶編號、公司名稱、產品編號、定單編號。UsesalesGOCREATEVIEWdbo.V_customersASSELECTdbo.Customers.CustomerID,dbo.Customers.CompanyName,dbo.OrderDetails.ProductID,dbo.Orders.OrderIDASExpr1,dbo.Orders.OrderDate,dbo.OrderDetails.QuantityFROMdbo.CustomersINNERJOINdbo.OrdersONdbo.Customers.CustomerID=dbo.Orders.CustomerID
INNERJOINdbo.OrderDetailsONdbo.Orders.OrderID=dbo.OrderDetails.OrderIDWHERE(dbo.OrderDetails.Quantity>50)AND(dbo.OrderDetails.Quantity<100)例6-2:在sales數據庫中創(chuàng)建如下視圖:利用Custmo
例6_3:在sales數據庫中創(chuàng)建如下視圖:利用OrderDetails表和Products表查詢每種產品銷售的總價值。USESALESGOCREATEVIEWdbo.V_Sale_Total
(定單編號,產品名稱,銷售總價值)WITHENCRYPTIONAS SELECTdbo.OrderDetails.OrderID,dbo.Products.ProductName,dbo.Products.Price,dbo.OrderDetails.QuantityFROMdbo.OrderDetailsINNERJOINdbo.ProductsONdbo.OrderDetails.ProductID=dbo.Products.ProductID例6_3:在sales數據庫中創(chuàng)建如下視圖:利用Order在查詢分析器中輸入以下SQL語句會執(zhí)行視圖:SELECT*FROMV_Sale_Total會生成如下的查詢結果:在查詢分析器中輸入以下SQL語句會執(zhí)行視圖:6.3管理視圖查看視圖信息
修改視圖
重命名視圖
刪除視圖
注:視圖的管理工具是企業(yè)管理器和命令語句6.3管理視圖查看視圖信息注:視圖6.3.1查看視圖信息
利用企業(yè)管理器查看視圖信息
右擊視圖展開數據庫點擊屬性視圖的查詢語句視圖的權限6.3.1查看視圖信息利用企業(yè)管理器查看視圖信息右展利用系統(tǒng)存儲過程查看視圖信息sp_help顯示數據庫對象的特征sp_helptext查看數據庫對象在系統(tǒng)表中的定義sp_depends顯示有關數據庫對象相關性的信息
利用系統(tǒng)存儲過程查看視圖信息USEsalesGOsp_helpV_Quantity使用sp_help顯示視圖的特征語法如下:sp_help[[@objname=]name]被顯示對象名稱例6-4:使用該存儲過程顯示視圖V_Quantity的特征信息。使用sp_help顯示視圖的特征語法如下:被顯示對象例6_5:使用該存儲過程顯示視圖V_Quantity的在系統(tǒng)表中的定義,則在查詢分析器中輸入如下命令行。UsesalesGosp_helptextV_Quantity使用sp_helptext顯示視圖在系統(tǒng)表中的定義語法如下:sp_helptext[@objname=]'name'
視圖的定義視圖加密后不能顯示視圖的定義使用sp_helptext顯示視圖在系統(tǒng)表中的定義語法如例6_6:使用該存儲過程顯示視圖V_Quantity的表依賴關系和引用的字段情況,則在查詢分析器中輸入如下命令行。sp_depends顯示視圖對表的依賴關系和引用的字段語法如下:sp_depends[@objname=]'object'UsesalesGoSp_dependsV_Quantitysp_depends顯示視圖對表的依賴關系和引用的字段語6.3.2修改視圖
利用企業(yè)管理器對視圖進行修改
展開數據庫右擊視圖選擇設計視圖6.3.2修改視圖利用企業(yè)管理器對視圖進行修改展開
利用ALTER命令對視圖進行修改
其語法形式如下:ALTERVIEWview_name[(column[,…n])][wirhencryption]ASselect_statement[withcheckoption]其中:參數的含義與創(chuàng)建視圖CREATEVIEW命令中的參數含義相同
利用ALTER命令對視圖進行修改其中:參數的含義與創(chuàng)建視通常利用該命令取消視圖的加密屬性UsesalesGOAlterviewV_Sale_Total(定單編號,產品名稱,銷售總價值)ASSELECTOrderID,ProductName,Price*QuantityFROMdbo.OrderDetailsINNERJOINdbo.ProductsONdbo.OrderDetails.ProductID=dbo.Products.ProductID
例6_7:利用ALTER命令去除視圖V_Sale_Total的加密屬性。注:去掉加密屬性后才可以查看視圖的信息通常利用該命令取消視圖的加密屬性Usesales例6_76.3.3重命名視圖
利用企業(yè)管理器對圖對象重命名
在企業(yè)管理器中雙擊該視圖名利用存儲過程sp_rename對視圖重命名
語法形式:sp_renameold_name,new_name
例6_8:使用存儲過程為視圖V_customers重命名為V_customers1
sp_renameV_customers,V_customers1
6.3.3重命名視圖6.3.4刪除視圖
利用企業(yè)管理器刪除視圖
右擊視圖刪除注意:若有其他數據庫對象依賴于將要刪除的視圖,則應考慮是否還要繼續(xù)刪除此視圖
6.3.4刪除視圖右擊視圖刪除注意:若有其他數據庫對象依利用DROPVIEW命令刪除視圖
語法形式如下:DROPVIEW{view}[,...n]例6-9:刪除視圖V_Customers。在查詢分析器中輸入以下命令:DropviewV_Customers可以同時刪除多個視圖利用DROPVIEW命令刪除視圖語法形式如下:DROP6.4通過視圖修改數據使用視圖修改數據源時需要注意以下幾點
對視圖中的數據進行修改時,不能同時修改兩個或多個基表中的數據。
在利用視圖修改數據時不能修改那些通過表達式計算得到的字段值
若用戶在創(chuàng)建視圖時,指定了WITHCHECKOPTION選項,那么所有對視圖數據的,必須保證修改后的新數據滿足視圖定義的范圍,否則在視圖中不可見。
用戶如果想通過視圖執(zhí)行更新和刪除命令時,則要操作的數據必須包含在視圖的結果集中,否則不能完成該操作。用DELETE命令只能刪除基于單個數據源創(chuàng)建的視圖中的數據,同樣利用UPDATE與INSERT命令也將會受到該限制。6.4通過視圖修改數據使用視圖修改數據源時需要注意以下幾6.4.1利用視圖插入記錄
利用企業(yè)管理器插入新記錄
“選中視圖-------右擊--------打開視圖--------返回所有行”
在視圖的運行結果中直接填加新記錄6.4.1利用視圖插入記錄在視圖的運行結果中直接填加新利用INSERT…INTO命令插入新記錄例6-10:首先創(chuàng)建一個新視圖文件V_stocks,基于表Products,要求包含庫存stocks值在300以上的記錄,在插入新記錄。UsesalesGoCreateviewV_stocksAsSelectProductID,ProductName,CategoryID,Price,stocksFromproductsWherestocks>300InsertintoV_stocksValues(‘P03007’,‘冰糖’,3,6.0000,200)Select*fromV_stocks例6-10利用INSERT…INTO命令插入新記錄例6-10:首先創(chuàng)建在插入新記錄時須注意以下內容:若在視圖的定義中為視圖限制了查詢條件或者基表的列允許空值或有默認值時,而新加入的記錄又不符合該限制,此時,仍然可以向基表中插入記錄,但再次運行視圖時,將不能顯示新插入的記錄。若在視圖的定義中使用了WITHCHECKOPTION選項,則當向視圖中插入不符和視圖查詢限制的記錄時,系統(tǒng)將不能將該記錄插入到視圖和基表中。若當基表對記錄進行了某些限制,如,在基表中進行主鍵限制或觸發(fā)器限制,如果新插入的記錄不符和該限制時,系統(tǒng)也不能將該記錄插入到視圖和基表中。在插入新記錄時須注意以下內容:6.4.2利用視圖更新記錄用企業(yè)管理器更新記錄
要更新的記錄必須符合視圖的查詢要求才能完成修改操作,否則在視圖的運行對話框中不顯示該記錄,也就無法完成該操作。
具體步驟同插入記錄
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 沿海公路擴建項目合同
- 包裝加工工程安裝施工承包合同
- 電力工程委托策劃合同模板
- 家具制造招投標注意事項
- 2025版能源行業(yè)勞動合同安全生產與應急管理合同3篇
- 2024年物流園區(qū)停車場運營管理承包合同范本3篇
- 2024年牙科醫(yī)療器械公司與制造商關于義齒加工的合同
- 2025年POS機租賃與移動支付技術支持合同
- 2024年版離婚雙方平等協商合同范本版B版
- 2025版昆明房產買賣稅費承擔及過戶合同3篇
- 跨國公司財務管理課后習題答案
- 公園對地價和環(huán)境的影響
- 人教版(2019)高一物理必修第三冊 13.5能量量子化 課件(共18張PPT)
- 新會計準則財務報表模板(帶公式)
- 溝槽管件尺寸對照表
- 建模案例—飛行管理問題
- 美術教案雄偉的塔教學反思
- (完整版)復變函數與積分變換公式
- 境外匯款申請書(模板)
- JTG-G10-2016)公路工程施工監(jiān)理規(guī)范
- 學習解讀《生豬屠宰管理條例》專題講授PPT課件
評論
0/150
提交評論