存储过程的形参类型
存储过程也允许提供参数(形参和实参),存储的参数也和函数一样,需要指定其类型。但是存储过程对参数还有额外的要求:自己的参数分类。
IN
表示参数从外部传入到里面使用(过程内部使用),可以是直接数据也可以是保存数据的变量。(相当于php函数里面的值传递)
Out
表示参数是从过程里面把数据保存到变量中,交给外部使用:传入的必须是变量
如果说传入的out变量本身在外部有数据,那么在进入过程之后,第一件事就是被清空,设为NULL(相当于php函数里面的引用传递)
Inout
数据可以从外部传入到过程内部使用,同时内部操作之后,又会将数据返还给外部。(相当于php函数里面的引用传递)
参数基本语法(形参)
过程类型 变量名 数据类型:
-- 创建三个外部变量
set @n1 = 1;
set @n2 = 2;
set @n3 = 3;
-- 创建过程
-- 修改语句结束符
delimiter $$
create procedure my_pro3(in int_1 int,out int_2 int,inout int_3 int)
begin
-- 查看三个传入进来的数据的值(此时int_2值为NULL,int_1和int_3值分别为1,3)
select int_1,int_2,int_3;
-- 修改三个变量的值
set int_1 = 10;
set int_2 = 100;