MySQL存储过程部分解释:

关于MySQL的存储过程

存储过程是数据库存储的一个重要的功能,但是MySQL在5.0以前并不支持存储过程,这使得MySQL在应用上大打折扣。好在MySQL 5.0终于开始已经支持存储过程,这样即可以大大提高数据库的处理速度,同时也可以提高数据库的灵活性。

格式

MySQL存储过程创建的格式:CREATE PROCEDURE过程名([过程参数[,...]])   procedure

[特性...] 过程体

这里先举个例子:

1. > 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