在本教學中,您將瞭解一個叫作資料庫視圖的新資料庫對象。 我們將討論使用資料庫視圖的優缺點。
資料庫視圖是虛擬表或邏輯表,它被定義為具有連接的SQL SELECT查詢語句。 因為資料庫視圖與資料庫表類似,它由行和列組成,因此可以根據資料庫表查詢數據。 大多數資料庫管理系統(包括MySQL)允許您通過具有一些先決條件的資料庫視圖來更新基礎表中的數據。
資料庫視圖是動態的,因為它與物理模式無關。資料庫系統將資料庫視圖存儲為具有連接的SQL SELECT語句。當表的數據發生變化時,視圖也反映了這些數據的變化。
資料庫視圖的優點
以下是使用資料庫視圖的優點 -
資料庫視圖允許簡化複雜查詢:資料庫視圖由與許多基礎表相關聯的SQL語句定義。 您可以使用資料庫視圖來隱藏最終用戶和外部應用程式的基礎表的複雜性。 通過資料庫視圖,您只需使用簡單的SQL語句,而不是使用具有多個連接的複雜的SQL語句。
資料庫視圖有助於限制對特定用戶的數據訪問。 您可能不希望所有用戶都可以查詢敏感數據的子集。可以使用資料庫視圖將非敏感數據僅顯示給特定用戶組。
資料庫視圖提供額外的安全層。 安全是任何關係資料庫管理系統的重要組成部分。 資料庫視圖為數據庫管理系統提供了額外的安全性。 資料庫視圖允許您創建只讀視圖,以將只讀數據公開給特定用戶。 用戶只能以只讀視圖檢索數據,但無法更新。
資料庫視圖啟用計算列。 資料庫表不應該具有計算列,但資料庫視圖可以這樣。 假設在
orderDetails
表中有quantityOrder
(產品的數量)和priceEach
(產品的價格)列。 但是,orderDetails
表沒有一個列用來存儲訂單的每個訂單項的總銷售額。如果有,資料庫模式不是一個好的設計。 在這種情況下,您可以創建一個名為total
的計算列,該列是quantityOrder
和priceEach
的乘積,以表示計算結果。當您從資料庫視圖中查詢數據時,計算列的數據將隨機計算產生。資料庫視圖實現向後相容。 假設你有一個中央資料庫,許多應用程式正在使用它。 有一天,您決定重新設計資料庫以適應新的業務需求。刪除一些表並創建新的表,並且不希望更改影響其他應用程式。在這種情況下,可以創建與將要刪除的舊表相同的模式的資料庫視圖。
資料庫視圖的缺點
除了上面的優點,使用資料庫視圖有幾個缺點:
- 性能:從資料庫視圖查詢數據可能會很慢,特別是如果視圖是基於其他視圖創建的。
- 表依賴關係:將根據資料庫的基礎表創建一個視圖。每當更改與其相關聯的表的結構時,都必須更改視圖。
在本教學中,您已經瞭解了資料庫視圖是什麼。我們還介紹了使用資料庫視圖的優缺點,以便您可以在資料庫設計中有效地應用資料庫視圖。