MYSQL存储过程和函数的区别及操作分析
存储过程介绍:存储过程就是一条或多条的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;
上一篇: 频频的改动会给网站排行带来哪些恶性影响?
下一篇: 顶点的法线变换