您的位置:首页 > 数据库 > MySQL

mysql 存储过程创建程

2017-10-29 12:54 239 查看
创建存储过程的语法格式:

create procedure  存储过程名(参数1,参数2.。。。。)

begin

    //sql代码

end;

存储过程参数分为输入参数(in)、输出参数(out)、输入输出(output)   在参数不输入参数类型默认为输入(in)

如果存储中begin 和end 中只含有一条语句的以省略begin和end

说明:(1)存储过程中,可以有各种编程元素:变量,流程控制、函数调用

(2) 还可以有增删改查等mysql语句

(3)select(或show、或desc)会作为存储过程执行后的“结果集”返回;

(4)形参是可以设定数据的“进出方向的(既是参数为输入(in)、输出(out)、还是输入输出参数(output))”

创建简单的存储过程:

1、无参的语句的存储过程

create procedure p1()

begin

SELECT 'procedure_test';

end;

含有一条语句的也可以写成如下样式

create procedure p1()

SELECT 'procedure_test';

调用p1存储过程:call p1();

2、创建含有参数的存储过程

create procedure p2(a VARCHAR(30))

BEGIN

if a="yyyy" THEN

SELECT test.name,test.pwd from user_info where test.name=a;

ELSE

SELECT test.name,test.pwd from user_info AS test;

END if;

END;

调用储存过程

//设置传的参数值,将参数出入存储过程调用处

set @df="uu";

CALL p2(@df);



set @df="yyyy";

CALL p2(@df);



3、含有输出参数的存储过程:

create procedure p3(a INT,out b INT)

BEGIN

declare i int DEFAULT 1;//使用declare声明变量

aa:LOOP//sql中的循环  aa循环为标签

SET b=i+a;

IF b>a THEN

LEAVE aa;

END if;

END LOOP;

SELECT b;

END;

调用方式:

set @inParam=9;//设置输入参数

set @outParam=0;//设置输出参数的初始值

CALL p3(@inParam,@outParam);//调用存储过程传参数

SELECT @outParam;//查询存储过程结果

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: