什么是mysql存儲過程?
存儲程序是被存儲在服務器中的組合sql語句,經編譯創建并保存在數據庫中,用戶可通過存儲過程的名字調用執行。存儲過程核心思想就是數據庫SQL語言層面的封裝與重用性。使用存儲過程可以較少應用系統的業務復雜性,但是會增加數據庫服務器系統的負荷,所以在使用時需要綜合業務考慮。
基本語法格式
CREATE?PROCEDURE?sp_name?([proc_parameter[,...]]) ????[characteristic?...]?routine_body
(免費學習視頻教程分享:mysql視頻教程)
實例一:計算消費折扣
--?創建存儲過程 DROP?PROCEDURE?IF?EXISTS?p01_discount?; CREATE?PROCEDURE?p01_discount(IN?consume?NUMERIC(5,2),OUT?payfee?NUMERIC(5,2))BEGIN ????--?判斷收費方式 ????IF(consume>100.00?AND?consume300.00)?THEN? ????????SET?payfee=consume*0.6; ????ELSE? ????????SET?payfee?=?consume;????END?IF;????SELECT?payfee?AS?result;END?; ????????--?調用存儲過程 ????????CALL?p01_discount(100.0,@discount);
實例二:while..Do寫數據
提供一張數據表
CREATE?TABLE?`t03_proced`?(?? `id`?int(11)?NOT?NULL?AUTO_INCREMENT?COMMENT?'主鍵ID',?? `temp_name`?varchar(20)?DEFAULT?NULL?COMMENT?'名稱', ??PRIMARY?KEY?(`id`) )?ENGINE=InnoDB?DEFAULT?CHARSET=utf8?COMMENT='觸發器寫數據';
存儲程序
根據傳入的參數,判斷寫入t03_proced表的數據條數。
DROP?PROCEDURE?IF?EXISTS?p02_batch_add?; CREATE?PROCEDURE?p02_batch_add(IN?count?INT(11))BEGIN ????DECLARE?temp?int?default?0; ????WHILE?temp?<p><strong>注意事項</strong></p><p>1、業務場景</p><p>存儲過程在實際開發中的應用不是很廣泛,通常復雜的業務場景都在應用層面開發,可以更好的管理維護和優化。</p><p>2、執行速度</p><p>假如在單表數據寫入的簡單場景下,基于應用程序寫入,或者數據庫連接的客戶端寫入,相比存儲過程寫入的速度就會慢很多,存儲過程在很大程度上沒有網絡通信開銷,解析開銷,優化器開銷等。</p><p>相關文章教程推薦:<a href="https://www.php.cn/course/list/51.html" target="_blank">mysql視頻教程</a></p>
? 版權聲明
文章版權歸作者所有,未經允許請勿轉載。
THE END
喜歡就支持一下吧
相關推薦