新聞中心
下文內容主要給大家?guī)鞰ysql存儲過程定義及講析,這里所講到的知識,與書籍略有不同,都是創(chuàng)新互聯(lián)專業(yè)技術人員在與用戶接觸過程中,總結出來的,具有一定的經驗分享價值,希望給廣大讀者帶來幫助。
一、什么是mysql存儲過程?
是在數(shù)據庫系統(tǒng)中,一組為了完成特定功能SQL語句集,經編譯后存儲在數(shù)據庫中,用戶通過制定存儲過程的名字并給出參數(shù)(如果該存儲過程帶有參數(shù))來執(zhí)行它。
存儲過程是經過編譯的SQL語句集。編譯后節(jié)省很多性能。
二、為什么使用存儲過程?
1、存儲過程只在創(chuàng)造時進行編譯,以后每次執(zhí)行存儲過程都不需要再重新編譯,而一般SQL語句每執(zhí)行一次就編譯一次,所以存儲過程可以提高數(shù)據庫執(zhí)行速度
2、當對數(shù)據庫進行復雜操作時(如對多個表進行UPDATE,INSERT,QUERY,DELETE時),可將此復雜操作用存儲過程封裝起來與數(shù)據庫提供的事務處理結合一起使用,這些操作如果用程序來完成,就變成一條條的SQL語句,可能要多次鏈接數(shù)據庫,而換成存儲過程,只需要鏈接一次數(shù)據庫就可以了
3、存儲過程可以重復使用,可以減少數(shù)據庫開發(fā)人員的工作量
4、安全性高,可設定只有某些用戶才具有對指定存儲過程的使用權
三、存儲過程的缺點
1、可移植性差
2、對于簡單的SQL語句,存儲過程沒什么優(yōu)勢
3、存儲過程中不一定會減少網絡傳輸
4、如果一個用戶使用數(shù)據庫,那么存儲過程對安全也沒什么影響
5、團隊開發(fā)時需要統(tǒng)一標準,否則后期維護起來麻煩
6、在大并發(fā)訪問量的情況下,不宜寫過多涉及運算的存儲過程
7、業(yè)務邏輯復雜時,特別是涉及到對很大的表進行操作的時候,不如在前端先簡化業(yè)務邏輯
四、存儲過程和函數(shù)、觸發(fā)器的區(qū)別
1、觸發(fā)器用于完成一些觸發(fā)條件所引發(fā)的操作,觸發(fā)器的執(zhí)行是自動化的
2、自定義函數(shù)只能通過return語句返回單個值或者表對象,而存儲過程不能調用return語句,但可以通過out參數(shù)返回多個值。函數(shù)可以在SQL語句中結合使用,函數(shù)不能用臨時表,只能用表變量,還有一些系統(tǒng)函數(shù)都不可用
3、存儲過程用于完成一系列的SQL操作,批量的完成數(shù)據庫操作工作,由使用者調用執(zhí)行
五、存儲過程的創(chuàng)建
解析:
1、寫mysql存儲過程,首先改變語句結束符,一般改成 //,因為存儲過程一般包含多條SQL語句,如果使用默認結束符可能中斷SQL的運行
2、mysql> CREATE PROCEDURE存儲過程的固定語句,后面跟存儲過程的名稱,()里面包含(存儲過程的參數(shù) 參數(shù)名稱 數(shù)據類型)
3、BEGIN....END是存儲過程的開始和結束符號,中間是存儲過程的內容
4、//結束,表示整個存儲過程的語句已經書寫完畢
5、書寫完畢后將mysql的結束符改回成 ;
6、CALL加上存儲過程的名稱、參數(shù)來調用存儲過程
存儲過程的參數(shù)
格式:
CREATE PROCEDURE 存儲過程名([[IN |OUT |INOUT ] 參數(shù)名 數(shù)據類形...])
參數(shù)IN的特點:存儲過程運行時,讀取外部變量值,存儲過程完成后,其外部變量的值不發(fā)生改變,依然是存儲過程外部設定的變量值
參數(shù)OUT的特點:不讀取外部變量的值,存儲過程運行完成后,外部變量的值更新為存儲過程內部的值
參數(shù)INOUT的特點:運行存儲過程時,讀取外部變量的值,存儲過程運行完成后,外部變量的值更新為存儲過程內部的值
對于以上關于Mysql存儲過程定義及講析,如果大家還有更多需要了解的可以持續(xù)關注我們創(chuàng)新互聯(lián)的行業(yè)推新,如需獲取專業(yè)解答,可在官網聯(lián)系售前售后的,希望該文章可給大家?guī)硪欢ǖ闹R更新。
另外有需要云服務器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。
網站名稱:Mysql存儲過程定義及講析-創(chuàng)新互聯(lián)
文章轉載:http://fisionsoft.com.cn/article/dcjips.html