MySQL存儲過程部分解釋

 

MySQL存儲過程部分解釋:

 關於MySQL的存儲過程

 

存儲過程是數據庫存儲的一個重要的功能,但是MySQL在5.0以前並不支持存儲過程,這使得MySQL在應用上大打折扣。好在MySQL 5.0終於開始已經支持存儲過程,這樣即可以大大提高數據庫的處理速度,同時也可以提高數據庫編程的靈活性。

 

格式

 

MySQL存儲過程創建的格式:CREATE PROCEDURE過程名([過程參數[,…]])   procedure

[特性…] 過程體

 

這裡先舉個例子:

  

 

1. mysql> DELIMITER // 

 

2. mysql> CREATE PROCEDURE proc1(OUT s int) 

 

3.     -> BEGIN

 

4.     -> SELECT COUNT(*) INTO s FROM user; 

 

5.     -> END

 

6.     -> // 

 

7. mysql> DELIMITER ;

 

 參數

 

MySQL存儲過程的參數用在存儲過程的定義,共有三種參數類型,IN,OUT,INOUT,形式如:

 

CREATE PROCEDURE([[IN |OUT |INOUT ] 參數名 數據類形…])

 

IN 輸入參數: 表示該參數的值必須在調用存儲過程時指定,在存儲過程中修改該參數的值不能被返回,為默認值

 

OUT 輸出參數: 該值可在存儲過程內部被改變,並可返回

 

INOUT 輸入輸出參數: 調用時指定,並且可被改變和返回

 

. IN參數例子

 

創建: 

 

1. mysql > DELIMITER // 

 

2. mysql > CREATE PROCEDURE demo_in_parameter(IN p_in int) 

 

3.      -> BEGIN  

 

4.      -> SELECT p_in; /*查詢輸入參數*/ 

 

5.      -> SET p_in=2; /*修改*/ 

 

6.      -> SELECT p_in; /*查看修改後的值*/ 

 

7.      -> END;  

 

8.      -> // 

 

mysql > DELIMITER ;

 

OUT參數例子

 

創建:

 

1. mysql > DELIMITER // 

 

2. mysql > CREATE PROCEDURE demo_out_parameter(OUT p_out int) 

 

3.      -> BEGIN

 

4.      -> SELECT p_out;/*查看輸出參數*/ 

 

5.      -> SET p_out=2;/*修改參數值*/ 

 

6.      -> SELECT p_out;/*看看有否變化*/ 

 

7.      -> END; 

 

8.      -> // 

 

9. mysql > DELIMITER ;

 

. INOUT參數例子

 

創建:

 

1. mysql > DELIMITER //  

 

2. mysql > CREATE PROCEDURE demo_inout_parameter(INOUT p_inout int)  

 

3.      -> BEGIN

 

4.      -> SELECT p_inout; 

 

5.      -> SET p_inout=2; 

 

6.      -> SELECT p_inout;  

 

7.      -> END; 

 

8.      -> //  

 

9. mysql > DELIMITER ;

 

註釋

 

 

 

MySQL存儲過程可使用兩種風格的註釋

 

雙模杠:–

 

該風格一般用於單行註釋

 

 風格:/* 註釋內容*/ 一般用於多行註釋

摘自 chizhidan_luck

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *