程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> MySQL視圖學習整理

MySQL視圖學習整理

編輯: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.能否監控視圖是否失效?

--未完待續

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved