一 前言
本篇内容是关于mysql储存过程的知识,学习本篇的基础是知识追寻者之前发过的文章(公众号读者看专辑)
公众号:知识追寻者知识追寻者(Inheriting the spirit of open source, Spreading technology knowledge;)
二 储存过程
2.1 储存过程的概念
我们经常使用的SQL查询语句都是单条语句,如果要使用多条语句达到一个目的就显得力不从心了,储存过程就是使用多条语句完成业务的操作,你可以理解为linux脚本编程类似,window的批处理文件那样;简单的定义储存过程就是多条SQL的集合;
我们使用储存过程能够简化复杂的单条SQL,相比于单条复杂的SQL极大提高了性能;如果表结构发生变化只需要改变储存过程使用到SQL语句的表名,如果业务逻辑发生变化,只需要跳转储存过程即可,具有很强的灵活性;建立一次储存过程,即可使用,不用反复建立,保证开发人员使用到都是相同的储存过程,保证数据可靠性;总之使用储存过程,简单,灵活,安全可靠,性能好;
2.2 存储过程语法创建存储过程
Create PROCEDURE 储存过程名称 (参数列表)
begin
过程体
end;参数列表
IN 表示输入; 示例 IN var1 Decimal(6,2)
OUT 表示输出;示例 IN var2 Decimal(6,2)
INOUT 表示输入输出;示例 IN var3 Decimal(6,2)
变量
declare 变量名称 变量类型 [default value]
执行存储过程
call 储存过程名称
删除储存过程
DROP PROCEDURE 储存过程名称
赋值
使用 set 和 select into 语句为变量赋值。
set @var := 20
select sum(price) into total from table_name
if 语句
f 条件 then
表达式
[elseif 条件 then
表达式]
...
[else
表达式]
end if;case语句
CASE 值 WHEN 匹配值 THEN 结果
[WHEN 匹配值 THEN 结果]
......
[ELSE 结果]
END
while语句
[开始标签:]while 条件 do
<