佛山網(wǎng)站建設(shè)正規(guī)公司創(chuàng)建網(wǎng)站平臺(tái)
一、存儲(chǔ)過(guò)程介紹
存儲(chǔ)過(guò)程是事先經(jīng)過(guò)編譯并存儲(chǔ)在數(shù)據(jù)庫(kù)中的一段SQL 語(yǔ)句的集合,調(diào)用存儲(chǔ)過(guò)程可以簡(jiǎn)化應(yīng)用開(kāi)發(fā)人員的很多工作,減少數(shù)據(jù)在數(shù)據(jù)庫(kù)和應(yīng)用服務(wù)器之間的傳輸,對(duì)于提高數(shù)據(jù)處理的效率是有好處的。 存儲(chǔ)過(guò)程思想上很簡(jiǎn)單,就是數(shù)據(jù)庫(kù)SQL 語(yǔ)言層面的代碼封裝與重用。
特點(diǎn)
- 封裝,復(fù)用
- 可以接收參數(shù),也可以返回?cái)?shù)據(jù)
- 減少網(wǎng)絡(luò)交互,效率提升
?
二、存儲(chǔ)過(guò)程的基本語(yǔ)法
2.1? 創(chuàng)建
CREATE PROCEDURE 存儲(chǔ)過(guò)程名稱(chēng)( [參數(shù)列表] ) BEGINSQL 語(yǔ)句 END;
?
2.2? 調(diào)用
CALL 名稱(chēng) ( [參數(shù)])
2.3? 查看
查詢(xún)指定數(shù)據(jù)庫(kù)的存儲(chǔ)過(guò)程及狀態(tài)信息
SELECT* FROM INFORMATION_SCHEMA.ROUTINES WHERE ROUTINE_SCHEMA = '對(duì)應(yīng)的數(shù)據(jù)庫(kù)名稱(chēng)'
存儲(chǔ)過(guò)程名稱(chēng);--查詢(xún)某個(gè)存儲(chǔ)過(guò)程的定義
SHOW CREATE PROCEDURE 存儲(chǔ)過(guò)程名稱(chēng)
2.4? 刪除
DROP PROCEDURE [ IFEXISTS ] 存儲(chǔ)過(guò)程名稱(chēng)
三、存儲(chǔ)過(guò)程中的變量
3.1? 系統(tǒng)變量
注意:
如果沒(méi)有指定SESSION/GLOBAL,默認(rèn)是SESSION,會(huì)話變量。
mysql服務(wù)重新啟動(dòng)之后,所設(shè)置的全局參數(shù)會(huì)失效,要想不失效,可以在/etc/my.cnf 中配置。
?
3.2? 用戶(hù)自定義變量
3.3? 局部變量
四、存儲(chǔ)過(guò)程-if判斷
五、存儲(chǔ)過(guò)程-參數(shù)
?