8.1.3 mysql流程控制语句
mysql
流程控制语句和局部变量一样, 只能放在存储过程,存储函数和触发器中
1. 顺序语句
begin....end
语句块, 语句块中可以包含一组语句,语句可以嵌套
begin
语句块......;
end;
delimiter
命令
delimiter 结束符; -- 将 mysql 的结束符修改为 结束符
2. 分支结构
语法格式
if条件1 then语句序列1
[elseif 条件2 then 语句序列2]
....
[else 语句序列n]
end if;
3. 循环结构
- while
(1)while语句
(2) repeat 语句
repeat
语句序列
until 条件
end repeat;
8.2存储过程
8.2.1 创建存储过程
-- 形式为 [in | out | inout]参数名 类型
-- in
-- out
-- inout
-- 存储过程 begin 开始 end 结束
create procedure 存储过程名 ([参数1], [参数2], ....)
8.2.2 调用存储过程
call 存储过程名 (参数)
8.2.4 使用游标
游标能够从结果集中每次提取一条记录进行处理,游标类似指针,一次指向一条数据,能够遍历结果集的全部记录
游标不能在查询中单独使用,一定要在存储过程或存储函数中使用
1.声明游标
DECLARE 游标名 CURSOR FOR SELECT 语句;
说明:
2.打开游标 才能获得结果集
OPEN 游标
3.提取数据 就是把拿到的数据行所有的字段值放在你创建的变量中 方便后续调用
FETCH 游标名 INTO 变量列表
一次只能拿到一条数据
FETCH 语句放到循环语句中
4.关闭游标 游标用完需要手动关闭
CLOSE 游标名
5.游标错误处理程序
DECLARE 错误处理类型 HANDLE FOR NOT FOUND 错误处理程序