欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

MYSQL存储过程和函数的区别及操作分析

程序员文章站 2022-05-20 18:48:57
存储过程介绍:存储过程就是一条或多条的sql语句的集合,可以理解为批文件 存储程序:存储过程 和 函数 存储过程和函数的区别: 本质上都是存储程序,函数只能通过return语句返回单个值或表对象,而...

存储过程介绍:存储过程就是一条或多条的sql语句的集合,可以理解为批文件

存储程序:存储过程 和 函数

存储过程和函数的区别:

本质上都是存储程序,函数只能通过return语句返回单个值或表对象,而存储过程不允许执行return语句,而且可以通过out参数返回多个值,函数不能用临时表,只能用变量,函数可以在sql语句中执行,而存储过程是独立的

创建存储过程:create procedure

调用存储过程:call语句,只能输出变量返回值,存储过程可以调用其他存储过程

例子:create procedure my_proc()

begin

select * from book;

end;

创建函数:create function,

调用函数:select func();

定义变量:declare num int default 9;

给变量赋值:set num=9;

定义条件:declare aa condition for sqlstate ‘42000’;

sqlstate代表的是mysql的错误

声明光标:declare cursor_name cursor for select_stament;

打开光标:open cursor_name;

使用光标:fetch cursor_name into var_name;

var_name :表示将光标查询的数据放入var_name中;

关闭光标:close cursor_fruit;

流程控制:

if语句:

if bl

then …….;

else ……..;

end if;

case语句:

case a

when ….. then …… ;

when …… then …….. ;

else ……….;

end case;

loop语句(重复执行某些语句):

loop_name : loop

set bl = true;

if bl then leave loop_name;

end if;

end loop loop_name;

leave :表示退出被标注的流程构造;

iterate:将执行顺序转到语句开头处

iterate….. until 条件 end iterate

repeat:每次都是带条件执行,直到为真,否则重复执行

repeat ….. until 条件 end repeat

while:每次带条件执行,和repeat不通之处是第一次执行时会判断是否为true;

while … do …. end while;

查看存储过程;show create procedure proc_name;

查看函数:show create function func_name;

删除存储过程:drop procedure proc_name;

删除函数:drop function func_nmae;