首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

MySQL 學習筆記(四):視圖 創建、查看、修改、刪除與進階用法

     編輯:MySQL 綜合教學

MySQL 學習筆記(四):視圖 創建、查看、修改、刪除與進階用法

視圖本質與特點

視圖是虛擬表,不存儲數據,通過封裝查詢動態生成。列可來自不同表,提高安全性(只暴露特定列)。

特點:
1. 列源自多表,邏輯抽象
2. 由基本表衍生
3. 創建/刪除不影響基本表
4. 更新視圖直接影響基本表
5. 多表視圖不允許增刪數據

創建視圖

CREATE VIEW view_name AS SELECT ...

實例:隱藏價格字段

CREATE TABLE t_product(id INT, name VARCHAR(20), price FLOAT);
-- 修正列名
ALTER TABLE t_product CHANGE name product VARCHAR(20);
-- 創建視圖
CREATE VIEW view_product AS SELECT id, product FROM t_product;
SELECT * FROM view_product; -- 僅見 id, product,price 隱藏

視圖類型大全

常量視圖: CREATE VIEW view_const AS SELECT 3.1415926;
聚合視圖: CREATE VIEW view_fun AS SELECT COUNT(name) FROM t_student;
排序視圖: CREATE VIEW view_order AS SELECT name FROM t_student ORDER BY id DESC;
內連接視圖: CREATE VIEW view_join AS SELECT s.name FROM t_student s, t_group g WHERE s.group_id=g.id AND g.id=2;
左連接視圖: CREATE VIEW view_left AS SELECT s.name FROM t_student s LEFT JOIN t_group g ON s.group_id=g.id WHERE g.id=2;
子查詢視圖: CREATE VIEW view_child AS SELECT s.name FROM t_student s WHERE s.group_id IN (SELECT id FROM t_group);
UNION 視圖: CREATE VIEW view_union AS SELECT id,name FROM t_student UNION ALL SELECT id,name FROM t_group;

查看視圖

SHOW TABLES;              -- 視圖同表一起顯示
SHOW TABLE STATUS LIKE "view_name"\G;
SHOW CREATE VIEW view_name\G; -- 查看定義
DESC view_name;

刪除視圖

DROP VIEW view_name[, view_name2...];

修改視圖

方式一: CREATE OR REPLACE VIEW view_name AS ...(無需先刪除)
方式二: ALTER VIEW view_name AS ...

示例:CREATE OR REPLACE VIEW view_product AS SELECT id FROM t_product; 隱藏 product 列。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved