1. MySQL 存储过程和函数
相对应函数/方法,存储函数必须有返回值,存储过程可以没有返回值
2. 存储过程
存储过程可以没有返回值
-- 修改结束分隔符这里指定为$ 可以自定义
delimiter $
-- 创建存储过程
create procedure 存储过程名称(参数列表[可为空]
begin
sql 语句;
end$
-- 恢复结束分割符为分号
delimiter;
-- 调用存储过程
call 存储过程名称(参数);
查询数据中所有的存储 过程 必须是root权限用户
select * from mysql.proc where db='数据库名称';
删除存储过程
drop procedure [if exists] 存储过程名称;
2.1. 变量
- 定义变量 declare 变量名 数据类型 [default 默认值];
- 赋值 set 变量名 = 值;
- 赋值2 select 列名 into 变量名 from 表名 [where 条件];
2.2. if语句
if 判断条件1 then sql语句;
elseif 判断条件2 then sql语句;
else sql语句;
end if;
2.3. 传参
- IN 默认值 输入参数关键字 由调用者传递实参
- OUT 输出参数,作为返回值返回
- INOUT 即可以为输入也可以为输出
create procedure 存储过程名([IN|OUT|INOUT] 参数名 数据类型)
BEGIN
SQL 语句;
END$
-- 调用
call 存储过程名(@输出参数名);
-- 查询返回值
select @输出参数名
2.4. while 循环
while 判断语句 do
循环体语句;
end while;
3. 存储函数
存储函数必须要有返回值 即有out参数
delimiter $
create function 函数名称(参数列表)
returns 返回值类型
begin
sql语句;
return 返回值;
end$
delimiter ;
-- 调用
select 函数名称(实际参数);
- 删除函数 drop function 函数名;