各位用户为了找寻关于mysql存储过程用法实例分析的资料费劲了很多周折。这里教程网为您整理了关于mysql存储过程用法实例分析的相关资料,仅供查阅,以下为您介绍关于mysql存储过程用法实例分析的详细内容
本文实例讲述了mysql存储过程用法。分享给大家供大家参考,具体如下:
概述:
简单的说,就是一组SQL语句集,功能强大,可以实现一些比较复杂的逻辑功能,类似于JAVA语言中的方法;
存储过程跟触发器有点类似,都是一组SQL集,但是存储过程是主动调用的,且功能比触发器更加强大,触发器是某件事触发后自动调用;
示例
? 1 2 3 4 5 6DELIMITER //
CREATE
PROCEDURE
proc (
IN
num
INT
)
BEGIN
SELECT
*
FROM
v9_qd_account limit num;
END
//
DELIMITER ;
执行:
? 1 2SET
@p_in=5;
CALL proc(@p_in);
或者
? 1CALL proc(5);
循环
? 1 2 3DECLARE
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 ;
调用
? 1CALL proc(
'test'
,
'123456'
,1,1,21);
查看
? 1 2 3SHOW
PROCEDURE
STATUS
LIKE
'C%'
G; 查看以字母C开头的存储过程
SHOW
CREATE
PROCEDURE
proc G; 查看状态和创建语句
information_schema.Routines 中查看
删除
? 1 2DROP
PROCEDURE
IF EXISTS proc;
DROP
FUNCTION
mytest;
点拨
如果参数中有中文可以这样
? 1CREATE
PROCEDURE
useInfo(
IN
u_name
VARCHAR
(50)
character
set
gbk,
OUT
u_age
INT
) ......
希望本文所述对大家MySQL数据库计有所帮助。
原文链接:http://www.cnblogs.com/mr-amazing/p/4626646.html