简单的概念:
存储过程简单来说,就是为以后的使用而保存的一条或多条MySQL语句的集合。可将其视为批件,虽然它们的作用不仅限于批处理。
在我看来, 存储过程就是有业务逻辑和流程的集合, 可以在存储过程中创建表,更新数据, 删除等等
存储过程创建
create procedure p1()
begin
-- sql 语句
end
查看已有存储过程
show procedure status \G;
调用存储过程
call procedure p1();
存储过程引用变量
存储过程是可以编程的
以为着可以使用变量 来完成复杂的功能
在存储过程中,用declare声明变量
格式 declare 变量名 变量类型 【default 默认值】
引用表达式
使用条件判断
if 条件 then
sql语句
else
sql语句
end if
给存储过程传参
语法是 【in / out / inout】 参数名 参数类型
顺序 选择 循环
例
create procedure p6()
begin
declare total int default 0;
declare num int default 0;
while num <= 100 do
set total := total + num;
set num := num+1;
end while;
select total;
end ;
create procedure p7(in age int)
begin
set age := age
end
事务(InnoDB,BDB引擎支持)
具有原子性,一致性,隔离性,持久性
开启事务
start transaction
回滚
rollback;
结束事务
commit