虽然一般不会用到MySQL存储过程,但是在一些特殊场景下还是有需求的。下面这篇文章主要介绍MySQL存储过程的相关信息,有需要的朋友可以参考一下。
目录
MySQL存储过程MySQL存储过程1的创建。简单的例子2。通过遍历光标来汇总结果集。
MySQL的存储过程
存储过程是数据库的一个重要功能。MySQL 5.0之前不支持存储过程,这让MySQL的应用大打折扣。好在MySQL 5.0开始支持存储过程,可以大大提高数据库的处理速度和数据库编程的灵活性。
MySQL存储过程的创建
语法
CREATE PROCEDURE过程过程名称([[IN|OUT|INOUT]参数名称数据类型[,[IN|OUT|INOUT]参数名称数据类型…])[属性.]过程主体
分隔符//
创建过程myproc(OUT s int)
开始
SELECT COUNT(*)INTO s FROM students;
结束
//
分隔符;
分隔符
MySQL默认为“;”是一个分隔符。如果没有声明分隔符,编译器会将存储过程视为SQL语句,因此编译过程会报告一个错误。所以需要提前用“分隔符//”声明当前段分隔符,这样编译器就可以把两个“//”之间的内容当作存储过程的代码,不会执行这些代码;"分隔符;"恢复分离器。
参数
如果有多个由“,”分隔的参数,存储过程可以根据需要包含输入、输出、输入和输出参数。MySQL存储过程的参数用于存储过程的定义。有三种类型的参数,in、out和inout:
调用存储过程时,必须指定IN参数的值。在存储过程中修改参数的值不能返回,是默认值OUT:这个值可以在存储过程内部修改,可以返回到INOUT:调用时指定,可以修改返回。
过程体
过程的开始和结束由begin和END标识。
1、简单实例
创建过程demo.p_test1()
开始
-使用declare语句声明变量。
声明id int default 0;
声明name varchar(50)default“”;
-使用set语句为变量赋值。
集合id=7521
-将users表中id=1的名称分配给username。
从demo.emp中选择ename into name,其中empno=id
-返回变量
选择名称;
结束;
2、通过游标遍历结果集
创建表demo.test(
id int,
cnt varchar(50)
)
创建过程demo.p_test2()
-通过光标遍历结果集
开始
-声明变量
声明id int default 0;
声明name varchar(50)default“”;
声明done布尔默认值为1;
-声明一个游标
从demo.dept中为SELECT deptno,dname声明rs游标。
-定义异常:
声明SQLSTATE“02000”SET done=0的continue处理程序;
-打开光标
开放RS;
从demo.test删除;
做完了就做
开始
将rs提取到id,name
插入到demo.test SELECT e.deptno,count(1) from demo.emp e其中e . deptno=id group by e . deptno;
结束;
结束while
-关闭光标
关闭RS;
结束;
调用demo . p _ test2();
SELECT * from demo.test
总结
这就是这篇关于MySQL存储过程的文章。有关MySQL存储过程的更多信息,请搜索我们以前的文章或继续浏览下面的相关文章。希望你以后能支持我们!