MySQL存儲過程及常用函數(shù)代碼解析
mysql存儲過程的概念:
存儲在數(shù)據(jù)庫當(dāng)中可以執(zhí)行特定工作(查詢和更新)的一組SQL代碼的程序段。
mysql函數(shù)的概念:
函數(shù)是完成特定功能的SQL語句,函數(shù)分為內(nèi)置函數(shù)和自定義函數(shù)(user-defined function UDF)
MySQL存儲過程和函數(shù)的區(qū)別
存儲過程可以有多個in,out,inout參數(shù),而函數(shù)只有輸入?yún)?shù)類型,而且不能帶in. 存儲過程實現(xiàn)的功能要復(fù)雜一些;而函數(shù)的單一功能性(針對性)更強(qiáng)。 存儲過程可以返回多個值;存儲函數(shù)只能有一個返回值。 存儲過程一般獨立的來執(zhí)行;而存儲函數(shù)可以作為其它sql語句的組成部分來出現(xiàn)。 存儲過程可以調(diào)用存儲函數(shù)。函數(shù)不能調(diào)用存儲過程。存儲過程是為了完成特定功能的sql語句集,經(jīng)編譯創(chuàng)建并保存在數(shù)據(jù)庫中。思想就是數(shù)據(jù)庫sql語言層面的代碼封裝與重用。
注:in指輸入?yún)?shù),out指輸出參數(shù)
創(chuàng)建自定義function
語法格式:create 函數(shù)名(參數(shù) 類型,參數(shù) 類型...) returns 類型 return 表達(dá)式值;
注:1.參數(shù)可以沒有,或者有多個。
2.必須有返回值,且只有一個。
3.如果有SQL語句的話要放在begin...end中間。
4.不加determministic會報錯(不知道咋解決)
begin...end復(fù)合語句
通常出現(xiàn)在存儲過程、函數(shù)和觸發(fā)器中,其中可以包含一個或多個語句,每個語句用;隔開。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. MySQL Delete 刪數(shù)據(jù)后磁盤空間未釋放的原因2. 淺談數(shù)據(jù)庫日期類型字段設(shè)計應(yīng)該如何選擇3. oracle 使用雜記24. MySql如何使用not in實現(xiàn)優(yōu)化5. MySQL性能優(yōu)化之一條SQL在MySQL中執(zhí)行的過程詳解6. MySQL中文亂碼問題解決方案7. Microsoft Office Access隱藏和顯示字段的方法8. MySQL索引知識的一些小妙招總結(jié)9. Microsoft Office Access添加行的方法10. 八步解決ACCESS自動編號問題(將SQL SERVER 2000數(shù)據(jù)庫,轉(zhuǎn)換為ACCESS數(shù)據(jù)庫)
