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;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值