1 / 20

第七章

第七章. 建立及使用 View. 章節概要. 7.1 什麼是 View 7.2 使用 CREATE VIEW 建立視界  7.3 使用 DROP VIEW 刪除視界  7.4 使用視界異動資料  7.5 使用視界的優缺點 . 7.1 什麼是 View.

Télécharger la présentation

第七章

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第七章 建立及使用View

  2. 章節概要 • 7.1 什麼是View • 7.2 使用CREATE VIEW建立視界  • 7.3 使用DROP VIEW刪除視界  • 7.4 使用視界異動資料  • 7.5 使用視界的優缺點 

  3. 7.1 什麼是View • 視界或檢視表(View)是一種定義於基底資料表或基本資料表(Base Table)的虛擬資料表(Virtual Table)。視界不同於一般的資料表,它們並沒有實際的資料實體;不像資料表有資料實體儲存在資料庫中,而資料庫中只會儲存其定義而已,和一般資料表一樣,我們也可以對視界執行各種查詢。視界的資料來源是源自於基底資料表,一個視界的定義也可以基於其他的視界。視界有如一扇窗戶,我們可以透過窗戶看到我們想要的資料,也像是一個固定的SELECT指令。利用視界可以使得資料的分析和操作更具有彈性。

  4. 什麼是View(續) • 我們會使用視界的主要兩個理由是: • 安全性:我們可以建立一個不具有機密性資料(如:薪資和佣金)的視界,並將之開放給一般使用者使用。 • 方便性:可以建立一個含有複雜查詢之視界,而當我們需要查詢資料時,就透過視界來執行查詢的動作,可以讓查詢看起來簡單許多。

  5. 7.2 使用CREATE VIEW建立視界 • 在關聯式資料庫中可使用CREATE VIEW來建立視界。其語法格式如下: • CREATE VIEW 視界名稱(欄位名稱一, 欄位名稱二,...) AS SELECT 指令 [WITH CHECK OPTION]

  6. 使用CREATE VIEW建立視界(續) • 其中的SELECT指令可以為以下除外的任何SELECT指令: • 包含ORDER BY子句。若需要從事排序的工作,則應於資料取出後再執行ORDER BY的動作。(SQL Server中若使用TOP子句則可以使用ORDER BY) • 包含COMPUTE或COMPUTE BY子句。 • 包含INTO關鍵字。 • 包含UNION關鍵字。 • 參考暫存資料表或資料表變數。

  7. 使用CREATE VIEW建立視界(續) • 例如我們想建立一個部門編號10的員工列表,則可建立如下的視界(Emp10): • CREATE VIEW Emp10 (EmployeeID, Name, Title) AS SELECT EmployeeID, Name, Title FROM Employees WHERE DepartmentID = 10

  8. 使用CREATE VIEW建立視界(續) • 或簡寫成 • CREATE VIEW Emp10 AS SELECT EmployeeID, Name, Title FROM Employees WHERE DepartmentID = 10

  9. 使用CREATE VIEW建立視界(續) • 如建立一個含有訂單代號、訂單日期、產品代號、產品名稱、單價及數量之視界OrderView,即可下達如下含結合運算的指令: • CREATE VIEW OrderView AS SELECT Orders.OrderID, Orders.OrderDate, OrderDetails.ProductID, Products.ProductName, OrderDetails.UnitPrice, OrderDetails.Quantity FROM Orders, OrderDetails, Products WHERE (Orders.OrderID = OrderDetails.OrderID) AND (OrderDetails.ProductID = Products.ProductID)

  10. 使用CREATE VIEW建立視界(續) • 現在我們可以使用OrderView來查詢訂單編號<=10250的各項資料,如: • SELECT OrderID, ProductID, ProductName, UnitPrice, Quantity, UnitPrice*Quantity AS AmountFROM OrderViewWHERE OrderID <= 10250ORDER BY OrderID • 其查詢的結果如下:

  11. 使用CREATE VIEW建立視界(續)

  12. 使用CREATE VIEW建立視界(續) • 建立一個使用次查詢來查詢所有起司的訂單明細之視界Cheese,如下: • CREATE VIEW CheeseASSELECT *FROM OrderDetailsWHERE ProductID IN( SELECT ProductID FROM Products WHERE ProductName LIKE '%起司%‘)

  13. 使用CREATE VIEW建立視界(續) • 我們想要查詢訂單編號<=10260之起司銷售明細時,即可下達如下的指令: • SELECT Cheese.*, Products.ProductNameFROM Cheese, ProductsWHERE Cheese.ProductID = Products.ProductIDAND OrderID <= 10260 • 其執行的結果如下:

  14. 7.3使用DROP VIEW刪除視界 • 假如我們想要刪除某一個視界,則可用DROP VIEW指令來執行刪除的動作。DROP VIEW的指令語法如下: • 【DROP VIEW】 DROP VIEW 視界名稱 • 如欲刪除DeptStat這個視界,則可下達如下的指令: • DROP VIEW DeptStat • 注意:DROP VIEW並不會影響到該視界所參考的基底資料表。

  15. 7.4 使用視界異動資料 • 我們可以透過視界來刪除資料,假如該視界合乎如下的限制: • 視界所依存的資料表只有一個資料表。 • 視界的建立指令中不含GROUP BY、DISTINCT、聚合函數。 • 我們可以透過視界來修改資料,假如該視界合乎如下的限制: • 視界所依存的資料表只有一個資料表。 • 視界的建立指令中不含GROUP BY、DISTINCT、聚合函數。 • 任何修改欄位均未用到表示式。

  16. 使用視界異動資料(續) • 我們可以透過視界來新增資料,假如該視界合乎如下的限制: • 視界所依存的資料表只有一個資料表。 • 視界的建立指令中不含GROUP BY、DISTINCT、聚合函數。 • 任何修改欄位均未用到表示式。 • 任何基底資料表的NOT NULL欄位均被包含在視界欄位之內。

  17. 使用視界異動資料(續) • 建立一個包含所有Customers資料表的NOT NULL欄位的視界如下: • CREATE VIEW CustomerViewASSELECT CustomerID, CompanyNameFROM Customers • 則我們可以使用如下的INSERT指令新增一筆客戶資料(合乎新增的限制規則): • INSERT INTO CustomerView(CustomerID, CompanyName)VALUES('ASKME', '艾司克米有限公司')

  18. 使用視界異動資料(續) • 我們也可以使用UPDATE指令異動客戶資料(合乎修改的限制規則),如: • UPDATE CustomerViewSET CompanyName = '艾司克米股份有限公司‘WHERE CustomerID = 'ASKME' • 我們也可以使用DELETE指令刪除客戶資料(合乎刪除的限制規則),如: • DELETE FROM CustomerViewWHERE CustomerID = 'ASKME'

  19. 7.5 使用視界的優缺點 • 使用視界如同於資料庫上開啟各種不同的可移動窗戶,使用不同的視界即擁有不同的視野。執行視界的查詢時,須經過一道轉譯的程序,將視界的查詢指令和該視界的定義結合起來,轉換成對原來的基底資料表的查詢指令,稱為視界的轉譯。

  20. 使用視界的優缺點(續) • 使用視界的優點如下: • 增加資料安全性 • 簡化資料查詢 • 增加獨立性 • 其主要缺點如下: • 執行效率差 • 操作限制較多 • 增加管理的複雜度 • 造成轉譯的問題:

More Related