mysql 存储过程知识点
一.创建存储过程
create procedure sp_name()
begin
.........
end
二.调用存储过程
1.基本语法:call sp_name();
注意:存储过程名称后面必须加括号,哪怕该存储过程没有参数传递
三.删除存储过程
1.基本语法:
drop procedure sp_name;
2.注意事项
(1)不能在一个存储过程中删除另一个存储过程,只能调用另一个存储过程
四.其他常用命令
1.show procedure status;
显示数据库中所有存储的存储过程基本信息,包括所属数据库,存储过程名称,创建时间等
2.show create procedure [sp_name];
显示某一个MySQL存储过程的详细信息
-
格式
MySQL存储过程创建的格式:CREATE PROCEDURE 过程名 ([过程参数[,...]])
[特性 ...] 过程体
其中:
MySQL存储过程的参数用在存储过程的定义,共有三种参数类型,IN,OUT,INOUT,形式如:
CREATE PROCEDURE([[IN |OUT |INOUT ] 参数名 数据类形...])
IN 输入参数:表示该参数的值必须在调用存储过程时指定,在存储过程中修改该参数的值不能被返回,为默认值(修改该值会参与运算,但存储过程执行结束后,该值还是初始值)
OUT 输出参数:该值可在存储过程内部被改变,并可返回
INOUT 输入输出参数:调用时指定,并且可被改变和返回 -
创建存储过程例子
mysql> DROP PROCEDURE IF EXISTS calc_param;
mysql> DELIMITER $$
mysql> CREATE PROCEDURE calc_param(IN p_in int, OUT p_out int)
BEGIN
select p_in;
set p_in=2;
set p_out=p_in*2;
select p_out;
select * from student;
END $$
mysql> DELIMITER ;
mysql> set @p_in=1;
mysql> set @p_out=5;
mysql> call calc_param(@p_in,@p_out);
mysql> select @p_in;
mysql> select @p_out;