MySQL存儲過程及常用函數(shù)代碼解析
mysql存儲過程的概念:
存儲在數(shù)據(jù)庫當中可以執(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)的功能要復雜一些;而函數(shù)的單一功能性(針對性)更強。
- 存儲過程可以返回多個值;存儲函數(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 表達式值;
注:1.參數(shù)可以沒有,或者有多個。
2.必須有返回值,且只有一個。
3.如果有SQL語句的話要放在begin...end中間。
4.不加determministic會報錯(不知道咋解決)

begin...end復合語句
通常出現(xiàn)在存儲過程、函數(shù)和觸發(fā)器中,其中可以包含一個或多個語句,每個語句用;隔開。
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
解決mysql安裝時出現(xiàn)error Nr.1045問題的方法
這篇文章主要為大家詳細介紹了解決mysql安裝時出現(xiàn)error Nr.1045問題的方法,感興趣的小伙伴們可以參考一下2016-06-06
阿里云ECS centos6.8下安裝配置MySql5.7的教程
阿里云默認yum命令下的MySQL是5.17****,安裝mysql5.7之前先卸載以前的版本。下面通過本文給大家介紹阿里云ECS centos6.8下安裝配置MySql5.7的教程,需要的的朋友參考下吧2017-07-07
MySQL多個表的關聯(lián)字段實現(xiàn)同步更新的解決方案
在對數(shù)據(jù)庫表結(jié)構(gòu)進行設計時,為了提高查詢效率,會進行一些反規(guī)范化設計,如:設計一些冗余字段,但這樣可能會存在數(shù)據(jù)同步問題,故本文給大家介紹了MySQL多個表的關聯(lián)字段實現(xiàn)同步更新的解決方案,需要的朋友可以參考下2024-11-11
mysql千萬級數(shù)據(jù)分頁查詢性能優(yōu)化
本文給大家分享的是作者在使用mysql進行千萬級數(shù)據(jù)量分頁查詢的時候進行性能優(yōu)化的方法,非常不錯的一篇文章,對我們學習mysql性能優(yōu)化非常有幫助2017-11-11

