搜索
您的当前位置:首页正文

MySql之储存过程

来源:吉趣旅游网

储存过程

创建储存过程

语法:

CREATE PROCEDURE 存储过程名字
(
[IN] 参数1参数类型,
OUT参数2 参数类型
) 
BEGIN
 程序代码块
END;

IN:代表输入参数(如果没有注明, 参数默认的类型为 in)

OUT:输出参数,不管有没有传值里面都是null

IN OUT;既可以做为输入参数,也可以做为输出参数

MySQL 存储过程名字后面的“()”是必须的,即使没有一个参数,也需要“()”

调用储存过程语法

CALL 储存过程名称(参数列表)

删除储存过程

drop procedure 储存过程名称 ;

查看储存过程

show create procedure 过程名称;

参数列表有IN

用储存过程来实现向t_user表中插入一条数据,首先创建一个储存过程。

DELIMITER // -- 修改sql语句的结束符为//
create PROCEDURE pro1 (
		in u_id int, -- -- 输入参数 用户id,
		in u_name varchar(30), --  输入参数用户name, 字符串类型必须要指定长度
		in u_age int -- -- 输入参数用户年龄 
		)
BEGIN
	-- 执行插入操作
	insert into t_user(id,name,age) values(u_id,u_name,u_age);
end;
 //
DELIMITER ; -- 结束符修改成;

 调用储存过程pro1

 

 参数列表有OUT

例:定义一个过程传递两个参数,过程里面把这两个参数相加的结果返回出来

create PROCEDURE pro4(
in a int, -- 输入参数
  in b int, -- 输入参数
  out c int -- 输出参数
)
BEGIN
-- 结果相加赋值给c
set c = a+b;
END;

调用储存过程

 

把调用过程的返回值用@sum来接收,最后显示@sum的值就可以看到过程的返回值了,@后面跟个名字,在MySQL中表示自定义变量

 

 例:根据员工编号查询员工名称,用储存过程来实现。

CREATE PROCEDURE pro2(
		IN u_id INT, -- 输入参数
	  OUT u_name VARCHAR(30) -- 输出参数
	)
BEGIN
	-- 执行查询语句,将name的值赋给u_name
select u.`name` into u_name from t_user u where u.id = u_id;
END;

调用储存过程

 参数列表有INOUT

create PROCEDURE pro5(
	inout x int -- 即可作输入参数,也可作输出参数 
)
BEGIN
set x = x+10;
end;

调用por5储存过程

 

create PROCEDURE pro6(
	x int,
  inout y int,
  out z int
)
BEGIN
set z = x+y;
set y = x;
END

调用储存过程

因篇幅问题不能全部显示,请点此查看更多更全内容

Top