MySQL之視圖與觸發器


一、視圖

定義:視圖類似一張虛擬的表,有行和列,但是視圖中存儲的是查詢語句,且視圖中的數據依賴於原表數據。

特點:

簡單:將一些復雜的關系查詢語句存入視圖中,下次使用時不需要再次編寫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 觸發器名字


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM