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存储过程应用的详细内容,更多请关注其它相关文章!