首頁  >  文章  >  資料庫  >  mysql的視圖是什麼

mysql的視圖是什麼

藏色散人
藏色散人原創
2021-12-28 14:43:3610967瀏覽

mysql的視圖是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]

mysql的視圖是什麼

#該語句能建立新的視圖,如果給定了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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn