mysql View

mysql View

視圖是mysql資料庫中存放數據的一個接口

基本介紹

  • 中文名:mysql 視圖
  • 外文名:mysql View
  • 解釋:虛擬的表
  • 學科:計算機學
  • 分類:資料庫
介紹,作用,類型,語法,

介紹

視圖是存放數據的一個接口,也可以說是虛擬的表。這些數據可以是從一個或幾個基本表(或視圖)的數據。也可以是用戶自已定義的數據。其實視圖裡面不存放數據的,數據還是放在基本表裡面,基本表裡面的數據發生變動時,視圖裡面的數據隨之變動。

作用

1,mysql view讓查詢變得很清晰,視圖中存放的數據就是我們所要的數據,並且可以簡化用戶操作。
2,mysql view讓數據更安全,視圖中的數據,不存在視圖中,還是在基本表裡面,通過視圖這層關係,我們可以有效的保護我們的重要數據

類型

mysql的視圖有三種類型:MERGE、TEMPTABLE、UNDEFINED。如果沒有ALGORITHM子句,默認算法是UNDEFINED(未定義的)。算法會影響MySQL處理視圖的方式。
1,MERGE,會將引用視圖的語句的文本與視圖定義合併起來,使得視圖定義的某一部分取代語句的對應部分。
2,TEMPTABLE,視圖的結果將被置於臨時表中,然後使用它執行語句。
3,UNDEFINED,MySQL將選擇所要使用的算法。如果可能,它傾向於MERGE而不是TEMPTABLE,這是因為MERGE通常更有效,而且如果使用了臨時表,視圖是不可更新的。

語法

CREATE [OR REPLACE] [ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}]
VIEW view_name [(column_list)]
AS select_statement
[WITH [CASCADED | LOCAL] CHECK OPTION]
該語句能創建新的視圖,如果給定了OR REPLACE子句,該語句還能替換已有的視圖。select_statement是一種SELECT語句,它給出了視圖的定義。該語句可從基表或其他視圖進行選擇。
create viewcreate view
該語句要求具有針對視圖CREATE VIEW許可權,以及針對由SELECT語句選擇的每一列上的某些許可權。對於在SELECT語句中其他地方使用的列,必須具有SELECT許可權。如果還有OR REPLACE子句,必須在視圖上具有DROP許可權。
視圖屬於資料庫。在默認情況下,將在當前資料庫創建新視圖。要想在給定資料庫中明確創建視圖,創建時,應將名稱指定為db_name.view_name。
mysql> CREATE VIEW test.v AS SELECT * FROM t;
表和視圖共享資料庫中相同的名稱空間,因此,資料庫不能包含具有相同名稱的表和視圖。
視圖必須具有唯一的列名,不得有重複,就像基表那樣。默認情況下,由SELECT語句檢索的列名將用作視圖列名。要想為視圖列定義明確的名稱,可使用可選的column_list子句,列出由逗號隔開的ID。column_list中的名稱數目必須等於SELECT語句檢索的列數。
SELECT語句檢索的列可以是對表列的簡單引用。也可以是使用函式、常量值、操作符等的表達式
對於SELECT語句中不合格的表或視圖,將根據默認的資料庫進行解釋。通過用恰當的資料庫名稱限定表或視圖名,視圖能夠引用表或其他資料庫中的視圖。

相關詞條

熱門詞條

聯絡我們