您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關mysql中視圖指的是什么的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
mysql的視圖是mysql數據庫中存放數據的一個接口,也可以說是虛擬的表;這些數據可以是一個或幾個基本表或視圖的數據,也可以是用戶自已定義的數據;當基本表里面的數據發生變動時,視圖里面的數據隨之變動。
本文操作環境:Windows7系統,mysql5.0版,Dell G3電腦。
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中視圖指的是什么”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。