共計 1611 個字符,預計需要花費 5 分鐘才能閱讀完成。
這篇文章給大家分享的是有關 mysql 中視圖指的是什么的內容。丸趣 TV 小編覺得挺實用的,因此分享給大家做個參考,一起跟隨丸趣 TV 小編過來看看吧。
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 中視圖指的是什么”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!