【MySQL】視圖

目錄

11.1.1  視圖的含義

11.1.2  視圖的作用

11.2.1  創建視圖的語法形式

11.2.3  在多表上創建視圖

11.4  修改視圖屬性

11.5  更新視圖內容

11.6  刪除視圖


11.1.1  視圖的含義

視圖是一個虛擬表,是從數據庫中一個或多個表中導出來的表。視圖還可以從已經存在的視圖的基礎上定義。


11.1.2  視圖的作用

● 簡單性:將經常使用到的查詢定義爲表,簡單;

● 安全性:只能修改和查詢所看見的數據;

● 邏輯數據獨立性:拜託真實表結果的變化帶來的影響。

 

11.2.1  創建視圖的語法形式

基於已存在的表和查詢語句;

創建視圖使用CREATE VIEW語句,基本語法格式如下:

CREATE [OR REPLACE] [ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}]

       VIEW view_name [(column_list)]

       AS SELECT_statement

       [WITH [CASCADED | LOCAL] CHECK OPTION]

視圖屬於數據庫,默認在當前數據庫創建新視圖,若想在其他數據庫創建,則將名稱改爲db_name.view_name.
11.2.2  在單表上創建視圖

MySQL可以在單個數據表上創建視圖。

 


11.2.3  在多表上創建視圖

MySQL中也可以在兩個或者兩個以上的表上創建視圖,可以使用CREATE VIEW語句實現。

 

11.3.1  DESCRIBE/DESC 視圖名 語句查看視圖基本信息


11.3.2  SHOW TABLE STATUS語句查看視圖基本信息

SHOW TABLE STATUS LIKE '視圖名';

 
11.3.3  使用SHOW CREATE VIEW語句可以查看視圖詳細定義。

SHOW CREATE VIEW 視圖名;


11.3.4  在views表中查看視圖詳細信息

在MySQL中,information_schema數據庫下的views表中存儲了所有視圖的定義。通過對views表的查詢,可以查看數據庫中所有的視圖的詳細信息。

SELECT * FROM information_schema.views;

11.4  修改視圖屬性

11.4.1  CREATE OR REPLACE VIEW語句修改視圖
11.4.2  ALTER語句修改視圖

ALTER語句是MySQL提供的另外一種修改視圖的方法。

ALTER [ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}]

     VIEW view_name [(column_list)]

     AS SELECT_statement

     [WITH [CASCADED | LOCAL] CHECK OPTION]

 

11.5  更新視圖內容

更新視圖是指通過視圖來插入、更新、刪除表中的數據,因爲視圖是一個虛擬表,其中沒有數據。通過視圖更新的時候都是轉到基本表進行更新的,如果對視圖增加或者刪除記錄,實際上是對其基本表增加或者刪除記錄。

Update,insert, delete。

Update view_name SET var_name= new_value;

Insert into 表名/視圖名 values (鍵值對);

Delete from 表名/視圖名 條件;

 

Ps:當視圖中包含有如下內容時,視圖的更新操作將不能被執行:

(4)視圖中不包含基表中被定義爲非空的列。

(1)在定義視圖的SELECT語句後的字段列表中使用了數學表達式。

(2)E定義視圖的SELECT語句後的字段列表中使用聚合函數。

(3)在定義視圖的SELECT語句中使用了DISTINCT, UNION, TOP, GROUP BY或HAVING子句。

 

11.6  刪除視圖

當視圖不再需要時,可以將其刪除,刪除一個或多個視圖可以使用DROP VIEW語句,刪除視圖必須擁有DROP權限。

DROP VIEW [IF EXISTS]

     view_name [, view_name] ...

     [RESTRICT | CASCADE] 限制和條件

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章