一、視圖
定義:視圖類似一張虛擬的表,有行和列,但是視圖中存儲的是查詢語句,且視圖中的數據依賴於原表數據。
特點:
簡單:將一些復雜的關系查詢語句存入視圖中,下次使用時不需要再次編寫SQL語句,直接調用視圖就可以了,可以重復的使用一個特定的查詢語句。
安全:Mysql數據庫沒有提供對於字段的權限,我們可以通過視圖來去做字段的權限。
數據獨立:一旦視圖創建成功,就算原表的結構發生變化,也不會對視圖的結構產生影響。
創建視圖
CREATE VIEW 視圖名 AS(查詢語句);
查看視圖
SHOW TABLE STATUS WHERE COMMENT=’view’;
使用視圖
SELECT * FROM 視圖名;
刪除視圖
DROP VIEW 視圖名;
視圖的特性:視圖中存的是查詢語句,就算你的視圖中存的是簡單查詢,在通過視圖去查詢數據時會自動變成復雜查詢。
視圖的缺點:占用更多資源,后期會增加維護成本。
二、觸發器
在MySQL數據庫中可以通過創建觸發器,以使在表里執行特定指令時自動向某張表里執行特定的操作。
例如給user表創建一個觸發器,當向user表中添加數據時 給userinor也添加一條數據,或是當我們刪除user表中的數據時 將刪除的數據備份的 back_user表中。
語法:
CREATE TRIGGER 觸發器名字 觸發時機 觸發事件 ON 表名 FOR EACH ROW BEGIN 觸發器要執行的sql語句 EDN;
創建觸發器時需要修改數據的默認結束符,使用\d||命令。
創建完觸發器時必須把結束符更改回來。
查看觸發器
Select * from information_schema.trigger;
刪除觸發器
Drop trigger 觸發器名字