MySQL之儲存過程(一)
阿新 • • 發佈:2019-02-06
儲存過程的優點是:
1、 儲存過程在伺服器端執行,執行速度快。
2、 儲存過程執行一次後,他的執行規劃就留在高速緩衝儲存器,在以後的操作中,只要在高速緩衝儲存器中呼叫已編譯好的二進位制程式碼執行,提高了系統性能。
儲存過程的語法格式是:
Create procedure 儲存過程名(引數)
begin
SQL語句體
end;
注意:
如果SQL語句體只有一句時,可以省略 begin 與 end。
名稱不區分大小寫,但儘量避免與內建函式同名。
名稱長度限制64個字元。
()可以為空,但不能省略。
通常select 不會出現在儲存過程體內。
呼叫儲存過程
Call 儲存過程名();
當儲存過程中的語句體內容在兩條以上的時候,如果我們這樣寫
Create procedure p1()
Begin
Select * from tb1;--會給出錯誤提示,直接結束儲存過程的宣告
Select * from tb2;
End;
所以,我們要在寫儲存過程之前先宣告結束符,語句為:
Delimiter 使用者定義結束符
儲存過程中的引數有三種類型:輸入引數(in)輸出引數(out)輸入/輸出引數(inout)
輸入引數可以傳遞給一個儲存過程。輸出引數可以返回一個結果或答案。輸入/輸出引數可以充當輸入引數也可以充當輸出引數。
宣告儲存過程的區域性變數有兩種方法
第一種就去:分兩步實現
先宣告
Declare 變數名 資料型別;
再賦值
Set 變數=值(也可以是表示式);
第二種方法:
用一條語句完成
Declare 變數名 資料型別 default 值;