学习目标:
学习MySQL存储过程
学习内容:
介绍:
存储过程是事先经过编译并存储在数据库中的一段 SQL 语句的集合,调用存储过程可以简化应用开发人员的很多工作,减少数据在数据库和应用服务器之间的传输,对于提高数据处理的效率是有好处的。
存储过程思想上很简单,就是数据库 SQL 语言层面的代码封装与重用。
特点:
封装,复用
可以接收参数,也可以返回数据
减少网络交互,效率提升
语法:
变量
1.系统变量 是MySQL服务器提供,不是用户定义的,属于服务器层面。分为全局变量 (GLOBAL)
会话变量 (SESSION)
语法:
2.用户定义变量是用户根据需要自己定义的变量,用户变量不用提前声明,在用的时候直接用“@变量名”使用就可以。其作用域为当前连接
语法:
3.局部变量是根据需要定义的在局部生效的变量,访问之前,需要DECLARE声明。可用作存储过程内的局部变量和输入参数,局部变量的范围是在其内声明的BEGIN... END块
语法:
if
语法:
参数
语法:
case:
语法:
案例:
while:
案例:
repeat
repeat是有条件的循环控制语句,当满足条件的时候退出循环。具体语法为:
案例:
loop
LOOP 实现简单的循环,如果不在SOL逻辑中增加退出循环的条件,可以用其来实现简单的死循环。LOOP可以配合以下两个语句使用:
LEAVE:配合循环使用,退出循环。
ITERATE:必须用在循环中,作用是跳过当前循环剩下的语句,直接进入下一次循环。
语法:
注:lable表示当前循环的名字
案例:
游标
游标(CURSOR)是用来存储查询结果集的数据类型,在存储过程和函数中可以使用游标对结果集进行循环的处理。游标的使用包括游标
的声明、OPEN、FETCH 和 CLOSE,其语法分别如下。
条件处理程序
条件处理程序(Handler)可以用来定义在流程控制结构执行过程中遇到问题时相应的处理步骤。具体语法为:
案例: