mysql存儲過程簡介
阿新 • • 發佈:2018-02-22
delete color fault 表達式 取數據 -a select eight while循環
一、存儲過程,可以理解為帶有邏輯的sql語句。
優點:是執行效率非常快,存儲過程是在數據庫的服務器端執行的。
缺點:移植性很差,不同數據庫的存儲過程是不能移植。
二、
1、基本語法
--創建存儲過程開始 --聲明存儲過程結束符為$ DELIMITER $ CREATE PROCEDURE 存儲名(IN i int ,out sname varchar(25)) --參數類型(in,out,inout) 參數名 數據庫類型 BEGIN -- 可以寫sql和邏輯體 -- if語句寫法開始 -- 列如: if 條件表達式 then --可以寫sql和邏輯體 elseif 條件表達式 then --可以寫sql和邏輯體 else --可以寫sql和邏輯體 end if --if語句寫法結束 --while循環語句開始 -- 列如: -- 聲明變量i,result DECLARE i INT DEFAULT 1; DECLARE result INT DEFAULT 0; WHILE i<=num DO --可以寫sql和邏輯體 SET result = result +i; SET i = i+1; END WHILE; --while循環語句結束 --使用INTO獲取數據庫的數據給輸出參數開始 --列如: SELECT NAME INTO sname FROM 表名 WHERE id=i; -- i為輸入參數,sname為輸出參數 --使用INTO獲取數據庫的數據給輸出參數結束 END $
--創建存儲過程結束
--備註 參數: IN: 表示輸入參數,可以攜帶數據帶存儲過程中 OUT: 表示輸出參數,可以從存儲過程中返回結果 INOUT: 表示輸入輸出參數,既可以輸入功能,也可以輸出功能
2、調用存儲過程
CALL 存儲過程名(參數...);
3、刪除存儲過程
DROP PROCEDURE 存儲過程名;
三、觸發器
1、創建語法
CREATE TRIGGER 觸發器名
AFTER|BEFORE
INSERT|DELETE|UPDATE ON 表名
FOR EACH ROW
-- 語句sql
end
2、刪除
DROP TRIGGER 觸發器名;
yexiangyang
mysql存儲過程簡介