变量的使用
需求:创建存储过程,查询学生的数量。利用sql语句计算语法得到数量,然后赋值给输出变量,赋值方式:利用关键字into直接在sql语句中赋值
create procedure proc_test3(out c int)
begin
** select count(stu_num) into c from students;**
end;
call proc_test3(@n);
select @n from dual;

全局变量尽量少用,不便于维护
存储过程参数
mysql存储过程的参数有三种:IN / OUT / INOUT
- IN输入参数
在调用存储过程中传递数据给村塾过程的参数(在调用的过程必须为具体的值)
需求:添加学生信息
![]()
![]()
这样就可以直接将这些数据添加到数据表中(创建的存储过程其实就是一种函数,可以在“函数选项中查看”) - OUT输出参数
作用是将存储过程中产生的数据返回给过程给过程的调用者,相当于java的返回值,但不同的是一个存储过程可以有多个输出参数
需求:根据学生学号,查询学生姓名
create procedure proc_test1(in id int, out name varchar(20))
begin
** select name into name from stus where id = id;**
end;
![]()
- INOUT输入输出参数
通过上一个案例,我们查询学生姓名,需要定义两个形参,那么INOUT就只需要定义一个形参,但有一点要注意,之前的输出参数是可以空值代入的,而使用inout时,把必须实参带入2以为sql指令提供具体值
![]()





浙公网安备 33010602011771号