学习目标:
关于Mysql文章目录
第一章 mysql8.0性能参数以及优化1.0
第二章 mysql存储过程1.0
文章目录
前言
存储过程就是具有名字的一段代码,用来完成一个特定的功能。
创建的存储过程保存在数据库的数据字典中。
学习内容
声明存储过程:
CREATEPROCEDURE 存储过程名([[IN |OUT |INOUT ] 参数名 数据类形…])
注:IN 输入参数:表示调用者向过程传入值(传入值可以是字面量或变量)
OUT 输出参数:表示过程向调用者传出值(可以返回多个值)(传出值只能是变量)
INOUT 输入输出参数:既表示调用者向过程传入值,又表示过程向调用者传出值(值只能是变量)
存储过程开始和结束
BEGIN … END
变量赋值
SET @input=100
变量定义
DECLARE input int unsigned default 100;
条件语句
if语句
mysql > DELIMITER //
mysql > CREATE PROCEDURE proc2(IN parameter int)
-> begin
-> declare var int;
-> if parameter=0 then
-> update t set s1=s1+1;
-> else
-> update t set s1=s1+2;
-> end if;
-> end;
-> //
mysql > DELIMITER ;
case语句
case
when input=0
then 操作
else 操作
end case
循环语句
while ···· end while
mysql > DELIMITER //
mysql > CREATE PROCEDURE proc4()
-> begin
-> declare var int;
-> set var=0;
-> while var<6 do
-> insert into t values(var);
-> set var=var+1;
-> end while;
-> end;
-> //
mysql > DELIMITER ;
repeat···· end repeat
mysql > DELIMITER //
mysql > CREATE PROCEDURE proc5 ()
-> begin
-> declare v int;
-> set v=0;
-> repeat
-> insert into t values(v);
-> set v=v+1;
-> until v>=5
-> end repeat;
-> end;
-> //
mysql > DELIMITER ;
loop ·····endloop
mysql > DELIMITER //
mysql > CREATE PROCEDURE proc6 ()
-> begin
-> declare v int;
-> set v=0;
-> LOOP_LABLE:loop
-> insert into t values(v);
-> set v=v+1;
-> if v >=5 then
-> leave LOOP_LABLE;
-> end if;
-> end loop;
-> end;
-> //
mysql > DELIMITER ;
创建mysql存储过程、存储函数
create procedure 存储过程名(参数)
create function 存储函数名(参数)
存储过程调用
call demo1[(传参)];
MySQL存储过程的修改
ALTER PROCEDURE
MySQL存储过程的删除
DROP PROCEDURE
参考文章:https://www.runoob.com/w3cnote/mysql-stored-procedure.html