存儲過程(stored procedure)是在大型數據庫系統中,一組爲了完成特定功能的SQL語句集,存儲在數據庫中,通過第一次編譯後再次調用不須要再次編譯,(效率比較高)用戶經過指定存儲過程的名字並給出參數(若是該存儲過程帶有參數)來執行它。存儲過程是數據庫中的一個重要對象(針對SQL編程而言)。數據庫
存儲過程:簡稱過程編程
一、存儲過程和函數的目的都是爲了可重複地執行操做數據庫的SQL語句的集合(代碼複用)函數
二、存儲過程、函數都是一次編譯,後續執行3d
一、標識符不一樣。函數的標識符爲function,過程爲procedure對象
二、函數中有返回值,且必須返回,而過程沒有返回值blog
三、過程無返回值類型,不能將結果直接賦值給變量;函數有返回值類型,調用時,除在select中,必須將返回值賦給變量io
四、函數能夠在select語句中直接使用,而過程不能。函數是使用select調用,而過程不是編譯
基本語法:function
create procedure 過程名字([參數列表])效率
beign
過程體
end
結束符號
若是過程體中只有一條指令,那麼能夠省略begin 和end
過程基本上也能夠完成函數對應的全部功能
查看過程和查看函數徹底同樣,除了關鍵字。
查看所有存儲過程:show procedure status [like ‘pattern’];
查看過程的建立語句:show create procedure 過程名字;
過程,沒有返回值,select不可能調用。
調用過程有專門的語法:call 過程名([實參列表]);
基本語法:drop procedure 過程名字;
存儲過程也容許提供參數(形參和實參),存儲過程的參數也和函數同樣,須要指定其類型。
可是存儲過程對參數還有額外的要求:本身的參數分類
表示參數從外部傳入到裏面使用(過程內部使用):能夠是直接數據也能夠是保存數據的變量
表示參數是從過程裏面把數據保存到變量中,交給外部使用:傳入的必須是變量
若是說傳入的out變量自己在外部有值,那麼在進入過程以後第一件事就是被清空設爲NULL
數據能夠從外部傳入到過程內部使用,同時內部操做以後,又會將數據返還給外部。
參數使用基本語法:
過程類型 變量名 數據類型;//in int_1 int;
在執行以後,再次查看會話變量。