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