一、視圖是什么
視圖是一種虛擬存在的表。。。。 (啰里啰嗦一大堆,幾乎所有的資料都是這么定義的,就把他當成查詢緩存就可以)
二、視圖有什么用
視圖的作用就是緩存數據,可以這么理解,我把一條sql的查詢結果裝在了一個視圖里,我下次再查的時候,就不用走sql了,直接取這個視圖里就可以了,神奇的是我可以修改這個視圖里的數據,就等於修改了原表數據。
它的優點有很多,什么簡單、安全、簡化操作、數據獨立。。。。(再次省略一萬字),然並卵,我在工作中從來沒有見到過它。因此只做了解,練習跟着走一遍就可以收工了。
三、視圖基本操作
1.我查表
SHOW TABLES;
2.我准備做視圖的數據
SELECT r.* FROM tb_role r RIGHT JOIN tb_admin a ON a.id=r.create_id;
3.創建一個視圖
CREATE OR REPLACE VIEW view_name_1 AS SELECT r.* FROM tb_role r RIGHT JOIN tb_admin a ON a.id=r.create_id; -- 視圖更新有很多限制 比如說 帶常量的查詢 帶limit的查詢 帶聚合函數的查詢 子查詢 等等 實際使用中自測一下就行了
-- 視圖語法 CREATE VIEW 視圖名稱 AS sql -- CREATE 后面加 OR REPLACE 代表如果本視圖存在則覆蓋
-- sql必須是查詢類sql sql內容可以是查詢視圖 也就是說 mysql允許視圖嵌套
4.我再查表
SHOW TABLES;
5.我查視圖內容
SELECT * FROM view_name_1;
6.我修改視圖的內容
UPDATE view_name_1 SET STATUS=10 WHERE id=3;
7.查一下原數據
SELECT r.* FROM tb_role r RIGHT JOIN tb_admin a ON a.id=r.create_id;
此時發現原表中的數據也一並被更新了
8.刪除視圖
DROP VIEW view_name_1;
9.我再查表
SHOW TABLES;
四、個人分享