一、存储过程,可以理解为带有逻辑的sql语句。
优点:是执行效率非常快,存储过程是在数据库的服务器端执行的。
缺点:移植性很差,不同数据库的存储过程是不能移植。
二、
1、基本语法
--创建存储过程开始 --声明存储过程结束符为$ DELIMITER $ CREATE PROCEDURE 存储名(IN i int ,out sname varchar(25)) --参数类型(in,out,inout) 参数名 数据库类型 BEGIN -- 可以写sql和逻辑体 -- if语句写法开始 -- 列如: if 条件表达式 then --可以写sql和逻辑体 elseif 条件表达式 then --可以写sql和逻辑体 else --可以写sql和逻辑体 end if --if语句写法结束 --while循环语句开始 -- 列如: -- 声明变量i,result DECLARE i INT DEFAULT 1; DECLARE result INT DEFAULT 0; WHILE i<=num DO --可以写sql和逻辑体 SET result = result + i; SET i = i+1; END WHILE; --while循环语句结束 --使用INTO获取数据库的数据给输出参数开始 --列如: SELECT NAME INTO sname FROM 表名 WHERE id=i; -- i为输入参数,sname为输出参数 --使用INTO获取数据库的数据给输出参数结束 END $
--创建存储过程结束
--备注 参数: IN: 表示输入参数,可以携带数据带存储过程中 OUT: 表示输出参数,可以从存储过程中返回结果 INOUT: 表示输入输出参数,既可以输入功能,也可以输出功能
2、调用存储过程
CALL 存储过程名(参数...);
3、删除存储过程
DROP PROCEDURE 存储过程名;
三、触发器
1、创建语法
CREATE TRIGGER 触发器名
AFTER|BEFORE
INSERT|DELETE|UPDATE ON 表名
FOR EACH ROW
-- 语句sql
end
2、删除
DROP TRIGGER 触发器名;
yexiangyang