存储过程介绍:存储过程就是一条或多条的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;