MySQL視圖學習整理,mysql視圖整理

來源:互聯網
上載者:User

MySQL視圖學習整理,mysql視圖整理

第一部分:初級概念及應用

一,視圖簡介

MySQL的視圖和Oracle視圖是一個概念,就是一張虛擬表,沒有任何資料的,資料還是存放在基表裡面的;

二,添加視圖
1:文法
CREATE
    [OR REPLACE]
    [ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}]
    [DEFINER = { user | CURRENT_USER }]
    [SQL SECURITY { DEFINER | INVOKER }]
    VIEW view_name [(column_list)]
    AS select_statement
    [WITH [CASCADED | LOCAL] CHECK OPTION]
2:舉例(建立視圖 )
mysql> use ehrt;  
Database changed  
mysql> create  algorithm = MERGE view t1 as select * from user;

三,修改視圖
1:文法
ALTER
    [ALGORITHM = {UNDEFINED | MERGE | TEMPTABLE}]
    [DEFINER = { user | CURRENT_USER }]
    [SQL SECURITY { DEFINER | INVOKER }]
    VIEW view_name [(column_list)]
    AS select_statement
    [WITH [CASCADED | LOCAL] CHECK OPTION]
2:舉例
mysql> alter view t1 as select * from user where name='Jacson';  

四,查看視圖

1.查看視圖資料

mysql> use ehrt; 
mysql> select * from t1;  
+----+------+-----+  
| id | name | sex |  
+----+------+-----+  
|  1 | Jacson |   0 |  
|  2 | Bai |   0 |  
+----+------+-----+  

2 rows in set (0.00 sec)  

2.查看視圖結構

mysql> show create view t1G; 
 
五,刪除視圖
mysql> drop view t1;  

Query OK, 0 rows affected (0.00 sec)  

第二部分:進階概念整理


一,視圖的類型
mysql的視圖有三種類型:MERGE、TEMPTABLE、UNDEFINED。如果不指定ALGORITHM子句,預設演算法為UNDEFINED。這個方式決定了影響MySQL處理視圖的速度。
1,MERGE,會將引用視圖的語句的文本與視圖定義合并起來,使得視圖定義的某一部分取代語句的對應部分。
2,TEMPTABLE,視圖的結果將被置於暫存資料表中,然後使用它執行語句。
3,UNDEFINED,讓自己MySQL選擇所要使用的演算法。

建議一般開發人員,在物理主機記憶體不大或者考慮程式可移植的情況下一般選擇MERGE

--未完待續

第三部分:進階應用程式

1.能否監控視圖是否失效?

--未完待續


著作權聲明:本文為博主原創文章,未經博主允許不得轉載。

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.