存儲過程是為了完成特定功能的一組SQL語句集掀序,它保存在數(shù)據(jù)庫側(cè)拐叉,調(diào)時只指定名稱與參數(shù)即可。使用存儲過程首寫要編寫SQL再進行編譯后調(diào)用吩坝,以后調(diào)用無需再編譯。
分類
存儲過程分成無返回值和帶返回值二類哑蔫,無返回值可稱為過程钾恢,有返回值的叫存儲函數(shù)。不同數(shù)據(jù)庫產(chǎn)商的存儲過程語法稍有不同鸳址,小傅老師以MYSQL為例和小伙伴們一起學習下瘩蚪。
1)存儲過程
l語法
IN修飾的參數(shù)為輸入?yún)?shù),SQL語句集不能對其進行修改稿黍;OUT修飾的參數(shù)為輸出參數(shù)疹瘦;IN OUT同時使用的參數(shù)既可當成輸入?yún)?shù)使用,也可當輸出參數(shù)巡球。
l例
l編譯
MYSQL的默認分隔符為“;”言沐,為避免沖突我們先用“DELIMITER //”將分割符臨時指定為”//”,最后再恢復默認值。
l調(diào)用
2)存儲函數(shù)
l語法
l例
l編譯
l調(diào)用
存儲函數(shù)相當于MYSQL的內(nèi)置函數(shù)酣栈,根據(jù)函數(shù)返回數(shù)據(jù)類型可出在SQL的不同部分险胰。
小結(jié)
當我們對一些不能公開業(yè)務的數(shù)據(jù)操作,最好把SQL封裝成存儲過程矿筝,而且存儲過程執(zhí)行效率也較高起便。小傅老師使用上述二個存儲過程拋磚引玉,在實際應用中存儲過程執(zhí)行SQL語句多且復雜窖维。