1. 程式人生 > >MySQL之儲存過程(一)

MySQL之儲存過程(一)

儲存過程的優點是:

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  值;