mysql的視圖是mysql資料庫中存放數據的一個接口,也可以說是虛擬的表;這些數據可以是一個或幾個基本表或視圖的數據,也可以是用戶自已定義的數據;當基本表裡面的資料變動時,視圖裡面的資料隨之變動。
本文操作環境:Windows7系統,mysql5.0版,Dell G3電腦。
mysql的視圖是什麼?
mysql View
檢視是mysql資料庫中存放資料的一個介面
##介紹
#視圖是存放資料的一個接口,也可以說是虛擬的表。這些數據可以是從一個或幾個基本表(或視圖)的數據。也可以是使用者自已定義的資料。其實視圖裡面不存放資料的,資料還是放在基本表裡面,基本表裡面的資料變動時,視圖裡面的資料隨之變動。作用
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 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語句中不合格的表或視圖,將根據預設的資料庫進行解釋。透過以適當的資料庫名稱限定表或視圖名,視圖能夠引用表或其他資料庫中的視圖。 推薦學習:《
mysql影片教學》
以上是mysql的視圖是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!