MySQL學習:
MySQL視圖
1.什麼是視圖?
MySQL視圖是虛擬的表。與包含數據的表不一樣,視圖只包含使用時動態檢索數據的查詢。
視圖僅僅是用來查看存儲在別處的數據的一種設施。視圖本身不包含數據,因此它們返回的數據是從其他表中檢索出來的。
在添加或更改這些表中的數據時,視圖將返回改變過的數據。
2.爲什麼使用視圖?
- 重用SQL語句
- 簡化複雜的SQL語句
- 保護數據
- 讓數據更加清晰
3.使用視圖
- 創建視圖
使用CREATE VIEW語句來創建。
CREATE VIEW 視圖名[(列1,列2,列3...)]
AS SELECT 列1,列2,列3...
FROM 數據表1,數據表2...
eg:
CREATE VIEW
productcustomers
AS SELECT
cust_name,
cust_contact,
prod_id
FROM
customers,
orders,
orderitems;
- 刪除視圖
用 DROP VIEW 視圖名 來刪除
DROP VIEW 視圖名;
- 更新視圖
使用 CREATE OR REPLACE VIEW 語句。
若要更新的視圖不存在,則會創建一個視圖;若存在,更新語句會替換原有視圖。
CREATE OR REPLACE VIEW 視圖名
AS SELECT 列1,列2...
FROM 數據表名;
若想更新數據,可以對它們使用INSERT、UPDATE和DELETE。
但如果視圖有如下定義,則不能進行視圖更新:
- 分組(使用GROUP BY和HAVING)
- 聯結
- 子查詢
- 並
- 聚集函數(MIN()、COUNT()、SUM()等)
- DISTINCT
- 導出(計算)列
- 查看視圖
查看視圖數據就當作查看一般表一樣就行了。
查看視圖結構用 DESC 視圖名 或 SHOW FIELDS FROM 視圖名
SHOW FIELDS FROM 視圖名;
或
DESC 視圖名;
若有不當之處,歡迎指正!