視圖:mysql
1.什麼是視圖 sql
視圖就是經過查詢獲得一張虛擬表,而後保存下來,下次用的時候直接使用便可安全
2.爲何用視圖框架
若是要頻繁使用一張虛擬表,能夠不用重複查詢優化
3.如何用視圖spa
select * from 表1 inner join 表2 on 表1.id = 表2.表1_id ;事務
注意:1.在硬盤中,視圖只有表結構文件,沒有表數據文件開發
2.視圖一般是用於插敘,儘可能不要修改視圖中的數據it
觸發器:io
1.什麼是觸發器
在知足對某張表數據的增、刪、改的狀況下(沒有查),自動觸發的功能稱之爲觸發器
2.爲什麼要用觸發器?
觸發器專門針對咱們對某張表數據的增、刪、改的行爲,這類行爲一旦執行就會啓動觸發器
,即自動運行另一段sql代碼
3.建立觸發器語法
create trigger 觸發器的名字 after(也能夠用before表明在以前觸發) insert(能夠換成delete,update) on 表名 for each row(結尾這三個是固定語法) 釋義:在這個表名插入一條記錄 以後觸發一條觸發器的行爲
begin
當上門的create 觸發器 觸發時,自動執行 這段sql代碼。。
end
觸發器這樣命名會好一點: 觸發器名_after_insert_哪張表名
事務:
1.什麼是事務
開啓一個事務能夠包含一些sql語句,這些sql語句要麼同時成功,要麼都不能成功,稱之爲事務的 原子性
2.事務的做用
能夠監測一系列操做的安全性、準確性,能夠對事務控制範圍內的數據進行回滾等操做
3.怎麼使用事務
start transaction #開啓事務
開始執行sql 語句。
能夠執行rollback 回滾到修改數據以前的狀態
在沒有執行commit以前這些修改的任何操做數據都不會刷新到硬盤
存儲過程:
1.定義:存儲過程包含了一系列可執行的sql語句,存儲過程存放於mysql中,經過調用他的名字能夠執 行其內部的一堆sql
2.三種開發模型:
一、應用程序:只須要開發應用程序的邏輯
mysql:編寫好存儲過程,用來給應用程序調用
優勢:開發效率,執行效率都高
缺點:考慮到人爲因素、跨部門溝通等問題,會致使擴展性差
二、應用程序:除了開發應用程序的邏輯,還須要編寫原生sql
mysql:
優勢:比方式1 拓展性高(非技術層面)
缺點:開發效率、執行效率都不如方式1,編寫原生sql太過於複雜,須要考慮sql語句的優化
3.應用程序:開發應用程序的邏輯,不須要編寫原生的sql,基於別人編寫好的框架來處理數據,
mysql:
優勢:不用再編寫純生sql,這意味着開發效率要比方式2高 ,同時拓展性也高
缺點:執行效率連方式2 都不如
3.建立存儲過程:
create procedure 存儲過程名(可傳參)
begin
sql語句
end
call 存儲過程名(可傳參) # call 是調用
2