Mysql存储过程有什么作用?如何使用存储过程?

  

Mysql自5.0起就支持存储过程,存储过程通俗的讲就是在一段封装过的SQL,但不仅仅只有SQL那么简单,通常还会有变量,条件判断,循环体,游标等。

<强>

创建存储过程语法如下:

创建过程过程名(参数)   开始   过程体   

关结束于参数,设置参数语法为

[在| | INOUT]参数名类型

    <李>

    表示该变量只能在过程体内使用

    <李>

    出表示该变量只能在过程体外使用

    <李>

    INOUT表示在过程体内和体外都能使用

下面,我们来创建一个最简单的存储过程。

创建过程p1 (INT x)   开始   选择x;   结束;

<强>

在MySQL中变量分为全局变量和局部变量。

全局变量以@开头,无需声明,直接使用即可,如

设置@ name=& # 39; gwx& # 39;;

局部变量需要先声明,局部变量的初始化方法如下:

声明x int默认0;

下面我们来完成一个存储过程:根据路程计算车费,3公里内按6远计算,超过的距离按每公里1.2元计算。

声明游标名光标为选择语句

开启关闭游标:

    <李>

    打开游标名

    <李>

    关闭游标名

取游标数据:

获取游标名成变量名

可以这么简单的介绍,大家会有疑惑,不清楚应该如何去使用。下面,来看一个实例,从实例中学习如何使用游标。

用游标完成一个非常简单的功能,将test_cursor表中数字全部累加起来。

创建表如果不存在test_cursor (   num1 INT(10)无符号NOT NULL默认0,   num2 INT(10)无符号NOT NULL默认0   );   插入test_cursor (num1, num2)值(1,1),(2,2),(3);      创建过程“test_cursor”()   开始   声明和INT(10)默认0;   声明n1、n2 INT (10);   宣布完成INT默认0;      为选择声明cur光标num1, num2 test_cursor;   声明继续处理程序SQLSTATE & # 39; 02000 & # 39;设置完成=1;      开放的坏蛋;——打开游标   虽然做=0   获取cur n1、n2;      如果=0然后——注意这里为什么加如果条件,不加的话,最后一个值会被多加一遍   设置=和+ n1 + n2总和;   如果;   结束时;   密切的坏蛋;——关闭游标      选择金额;   

结束这里有几点需要注意,首先局部变量的定义必须要在声明游标前声明。

另外,这里宣布继续处理程序SQLSTATE & # 39; 02000 & # 39;设置完成=1;表示游标结束后将完成设置为1,以结束循环。

以上就是Mysql存储过程应用的详细内容,更多请关注其它相关文章!

Mysql存储过程有什么作用?如何使用存储过程?