MYSQL學習筆記:關於MySQL視圖(3)


MySQL學習:


MySQL視圖


1.什麼是視圖?

    MySQL視圖是虛擬的表。與包含數據的表不一樣,視圖只包含使用時動態檢索數據的查詢。
    視圖僅僅是用來查看存儲在別處的數據的一種設施。視圖本身不包含數據,因此它們返回的數據是從其他表中檢索出來的。
    在添加或更改這些表中的數據時,視圖將返回改變過的數據。


2.爲什麼使用視圖?

  • 重用SQL語句
  • 簡化複雜的SQL語句
  • 保護數據
  • 讓數據更加清晰

3.使用視圖

  • 創建視圖

使用CREATE VIEW語句來創建。

CREATE VIEW 視圖名[(1,2,3...)]
AS SELECT1,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 SELECT1,2...
FROM 數據表名;

若想更新數據,可以對它們使用INSERT、UPDATE和DELETE。
但如果視圖有如下定義,則不能進行視圖更新:

  • 分組(使用GROUP BY和HAVING)
  • 聯結
  • 子查詢
  • 聚集函數(MIN()、COUNT()、SUM()等)
  • DISTINCT
  • 導出(計算)列
  • 查看視圖

查看視圖數據就當作查看一般表一樣就行了。
查看視圖結構DESC 視圖名SHOW FIELDS FROM 視圖名

SHOW FIELDS FROM 視圖名;DESC 視圖名;


若有不當之處,歡迎指正!

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