首页 > 数据库技术 > 详细

mysql数据库之存储过程

时间:2019-05-06 14:38:18      阅读:192      评论:0      收藏:0      [点我收藏+]

存储过程(Stored Procedure)是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,存储在数据库中,经过第一次编译后调用不需要再次编译,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。存储过程是数据库中的一个重要对象。

存储过程大体语法结构:

delimiter //

create procedure procedurename(in myname varchar(20),out myid int,inout sex char)

begin

declare i.....

set 赋值语句.....

sql语句......

if ...

while do...

loop....

end

//

整个存储过程大体结构如上

调用存储过程:

set @myname=‘jason‘;

set @myid=1;

set @sex=‘男‘;

call procedurename(@myname,@myid,@sex);

删除存储过程:

drop procedure procedurename;

整个存储过程从创建到删除,大体流程就是这样的

下面详细解释:

 

delimiter//
create procedure pname(in,inout,out)
begin
end
//
删除存储过程f:drop procedure pname;


delimiter//
create PROCEDURE selc(in myid INT,IN myname varCHAR(20))
BEGIN
SELECT * FROM proc WHERE id=myid AND username=myname;
INSERT INTO proc (username,id)VALUES(‘chen‘,3);
END
//
DROP PROCEDURE selc;
set @myid=1;
set @myname=‘zhang‘;
call selc(@myid,@myname);
SELECT * FROM proc;

 

 

 

delimiter//
create PROCEDURE outselec(out myname varchar(20),in myid int)
BEGIN
SELECT username INTO myname FROM proc where id=myid;#username into myname是将查询出来的username值赋值给myname参数
end
//
DROP PROCEDURE outselec;
set @myname=‘‘;
set @myid=1;
call outselec(@myname,@myid);
SELECT @myname username;


输入输出参数的测试
delimiter //
create procedure p_inout ( INOUT num int )
begin
select num;
set num=100;
select num;
end;
//
delimiter ;

set @num=200;
call p_inout(@num)

mysql数据库之存储过程

原文:https://www.cnblogs.com/jasonboren/p/10819331.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!