创建存储过程

delimiter &&
create procedure pro_name (in id int, out count_num int)
  reads sql date 
  begin 
  select count(*) from t_book where book_type = id;
  end 
&&
delimiter ;

创建存储函数

    delimiter &&
    create funtion func_book (book_id int)
      returns varchar(20)
      begin
        return (select book_name from t_book where id = book_id)
      end
    && 
    delimiter ;

变量

  • 定义变量
    • declare 变量名 类型 [default 值]
  • 为变量赋值
    • set 变量名 = 值;
    • select 字段 into 变量名 from 表名 where 条件

游标

  • 声明游标
    • declare 游标名 cursor for select语句;
  • 打开游标
    • open 游标名;
  • 使用游标
    • fetch 游标名 into 变量名;
  • 关闭游标
    • close 游标名;

流程控制语句

if语句

    if 条件 then 执行语句
      [elseif 条件 then 执行语句]
      ...
      [else 执行语句]
    end if 

case语句

case 值
  when 值 then 执行语句;
  ...
  [else 执行语句]
 end case 

loop,leave语句

[标签:] loop 
  执行语句;
  [leave 标签]
end loop [标签];

iterate语句

跳出本次循环

iterate 标签;

repeat语句

[标签:] repeat
  执行语句;
  until 条件
end repeat [标签];

while语句

[标签:] while 条件 do
  执行语句;
end while [标签]

调用存储过程和函数

  • 调用存储过程
    • call 存储过程名(参数列表);
  • 调用函数
    • 函数名(参数列表);

查看存储过程和函数

  • show status 语句查看存储过程和函数的状态
    • show status like '存储名或函数名';
  • show create语句查看存储过程和函数的定义
    • show create '存储名或函数名';

修改存储过程或函数

alter 存储过程或函数的名称 .......

删除存储过程或函数

drop 存储过程或函数的名称;