各位用户为了找寻关于mysql存储过程用法实例分析的资料费劲了很多周折。这里教程网为您整理了关于mysql存储过程用法实例分析的相关资料,仅供查阅,以下为您介绍关于mysql存储过程用法实例分析的详细内容

本文实例讲述了mysql存储过程用法。分享给大家供大家参考,具体如下:

概述:

简单的说,就是一组SQL语句集,功能强大,可以实现一些比较复杂的逻辑功能,类似于JAVA语言中的方法;

存储过程跟触发器有点类似,都是一组SQL集,但是存储过程是主动调用的,且功能比触发器更加强大,触发器是某件事触发后自动调用;

示例

? 1 2 3 4 5 6 DELIMITER // CREATE PROCEDURE proc (IN num INT) BEGIN SELECT * FROM v9_qd_account limit num; END // DELIMITER ;

执行:

? 1 2 SET @p_in=5; CALL proc(@p_in);

或者

? 1 CALL proc(5);

循环

? 1 2 3 DECLARE num int default 5; SET num = 1; SET num = num + 1; ? 1 2 3 4 5 6 7 8 9 10 11 12 13 DELIMITER // CREATE PROCEDURE proc(IN sname VARCHAR(20),IN pwd VARCHAR(5),IN qd INT,IN start INT,IN end INT)   begin   DECLARE var INT;   DECLARE myname VARCHAR(30);   SET var=start;   while var<end do     SET myname = CONCAT(sname,LPAD(var,3,'0'));     insert into v9_qd_account (storename,password,qudao,regdate) value(myname,md5(pwd),qd,UNIX_TIMESTAMP());     SET var=var+1;   end while;   end // DELIMITER ;

调用

? 1 CALL proc('test','123456',1,1,21);

查看

? 1 2 3 SHOW PROCEDURE STATUS LIKE 'C%' G; 查看以字母C开头的存储过程 SHOW CREATE PROCEDURE proc G; 查看状态和创建语句 information_schema.Routines 中查看

删除

? 1 2 DROP PROCEDURE IF EXISTS proc; DROP FUNCTION mytest;

点拨

如果参数中有中文可以这样

? 1 CREATE PROCEDURE useInfo(IN u_name VARCHAR(50) character set gbk,OUT u_age INT) ......

希望本文所述对大家MySQL数据库计有所帮助。

原文链接:http://www.cnblogs.com/mr-amazing/p/4626646.html