存储过程(Stored Procedure):(先编译后执行)
一组可编程的函数,是为了完成特定功能的SQL语句集,经编译创建并保存在数据库中,用户可通过指定存储过程的名字并给定参数(需要时)来调用执行。
优点:
①将重复性很高的一些操作,封装到一个存储过程中,简化了对这些SQL的调用
②批量处理:SQL+循环,减少流量,也就是“跑批”
③统一接口,确保数据的安全
相对于oracle数据库来说,MySQL的存储过程相对功能较弱,使用较少。
存储过程例子分析:计算c=a+b;
传入 a,b,返回 c;
DELIMITER $$ #将语句的结束符号从分号;临时改为两个$$(可以是自定义)
USE `comonerp`$$ #指定哪个数据库
DROP PROCEDURE IF EXISTS `sp_sum`$$ #如果存在待创建的视图,则删除。
#DEFINER 用于指明存储过程是由哪个用户定义的,
# 'sp_sum' 存储名
# 参数类型: 向过程传入的参数: in ,
参数名: 'a',
参数类型:integer;
CREATE DEFINER=`well`@`%` PROCEDURE `sp_sum`(IN `a` INTEGER,IN `b` INTEGER,OUT `c` INTEGER)
BEGIN #开始标志
SET c=a+b;
END$$ 结束标志
DELIMITER ; #将语句的结束符号恢复为分号