MySQL存儲(chǔ)過(guò)程及常用函數(shù)代碼解析
mysql存儲(chǔ)過(guò)程的概念:
存儲(chǔ)在數(shù)據(jù)庫(kù)當(dāng)中可以執(zhí)行特定工作(查詢和更新)的一組SQL代碼的程序段。
mysql函數(shù)的概念:
函數(shù)是完成特定功能的SQL語(yǔ)句,函數(shù)分為內(nèi)置函數(shù)和自定義函數(shù)(user-defined function UDF)
MySQL存儲(chǔ)過(guò)程和函數(shù)的區(qū)別
存儲(chǔ)過(guò)程可以有多個(gè)in,out,inout參數(shù),而函數(shù)只有輸入?yún)?shù)類型,而且不能帶in. 存儲(chǔ)過(guò)程實(shí)現(xiàn)的功能要復(fù)雜一些;而函數(shù)的單一功能性(針對(duì)性)更強(qiáng)。 存儲(chǔ)過(guò)程可以返回多個(gè)值;存儲(chǔ)函數(shù)只能有一個(gè)返回值。 存儲(chǔ)過(guò)程一般獨(dú)立的來(lái)執(zhí)行;而存儲(chǔ)函數(shù)可以作為其它sql語(yǔ)句的組成部分來(lái)出現(xiàn)。 存儲(chǔ)過(guò)程可以調(diào)用存儲(chǔ)函數(shù)。函數(shù)不能調(diào)用存儲(chǔ)過(guò)程。存儲(chǔ)過(guò)程是為了完成特定功能的sql語(yǔ)句集,經(jīng)編譯創(chuàng)建并保存在數(shù)據(jù)庫(kù)中。思想就是數(shù)據(jù)庫(kù)sql語(yǔ)言層面的代碼封裝與重用。
注:in指輸入?yún)?shù),out指輸出參數(shù)
創(chuàng)建自定義function
語(yǔ)法格式:create 函數(shù)名(參數(shù) 類型,參數(shù) 類型...) returns 類型 return 表達(dá)式值;
注:1.參數(shù)可以沒(méi)有,或者有多個(gè)。
2.必須有返回值,且只有一個(gè)。
3.如果有SQL語(yǔ)句的話要放在begin...end中間。
4.不加determministic會(huì)報(bào)錯(cuò)(不知道咋解決)
begin...end復(fù)合語(yǔ)句
通常出現(xiàn)在存儲(chǔ)過(guò)程、函數(shù)和觸發(fā)器中,其中可以包含一個(gè)或多個(gè)語(yǔ)句,每個(gè)語(yǔ)句用;隔開。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. Mysql中的concat函數(shù)(拼接函數(shù))詳解2. 推薦精華文章:Oracle數(shù)據(jù)庫(kù)高手調(diào)優(yōu)秘密3. Oracle數(shù)據(jù)庫(kù)10g環(huán)境下修改VIP地址的方法4. Windows環(huán)境下如何卸載DB2數(shù)據(jù)庫(kù)5. Oracle中的定時(shí)任務(wù)實(shí)例教程6. SQL Server跨服務(wù)器操作數(shù)據(jù)庫(kù)的圖文方法(LinkedServer)7. ORACLE回滾段表空間數(shù)據(jù)文件丟失或損壞處理方法8. 解讀mysql datetime類型精確到毫秒、微秒的問(wèn)題9. MySQL找出未提交事務(wù)的SQL實(shí)例淺析10. SQL Server系統(tǒng)函數(shù)介紹
