MySQL数据库存储过程及触发器
- 1.存储过程
- 1.1概念
- 1.2作用
- 1.3基本语法
- 创建存储过程
- 调用存储过程
- 2.触发器
- 2.1概念
- 2.2作用
- 2.3基本语法
1.存储过程
1.1概念
存储过程(Stored Procedure)是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,它存储在数据库中,一次编译后永久有效,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。存储过程是数据库中的一个重要对象。在数据量特别庞大的情况下利用存储过程能达到倍速的效率提升
1.2作用
- 重复使用。存储过程可以重复使用,从而可以减少数据库开发人员的工作量。
- 提高性能。存储过程在创建的时候就进行了编译,将来使用的时候不用再重新编译。一般的SQL语句每执行一次就需要编译一次,所以使用存储过程提高了效率。
- 减少网络流量。存储过程位于服务器上,调用的时候只需要传递存储过程的名称以及参数就可以了,因此降低了网络传输的数据量。
- 安全性。参数化的存储过程可以防止SQL注入式的攻击,而且可以将Grant、Deny以及Revoke权限应用于存储过程
1.3基本语法
创建存储过程
create procedure 存储过程名(in 参数名 参数类型)
begin
sql语句
...
end;
调用存储过程
call 存储过程名(传参);
2.触发器
2.1概念
是一种特殊类型的存储过程,它不同于我们前面介绍过的存储过程。触发器主要是通过事件进行触发而被执行的,而存储过程可以通过存储过程名字而被直接调用。当对某一表进行诸如Update、 Insert、 Delete 这些操作时,SQL Server 就会自动执行触发器所定义的SQL 语句,从而确保对数据的处理必须符合由这些SQL 语句所定义的规则
2.2作用
- 安全性。可以基于数据库的值使用户具有操作数据库的某种权利;
可以基于时间限制用户的操作,例如不允许下班后和节假日修改数据库数据;
可以基于数据库中的数据限制用户的操作,例如不允许股票的价格的升幅一次超过10%。 - 审计。可以跟踪用户对数据库的操作;
- 实现复杂的数据完整性规则;
- 实现复杂的非标准的数据库相关完整性规则。
- 自动计算数据值,如果数据的值达到了一定的要求,则进行特定的处理。例如,如果公司的帐号上的资金低于5万元则立即给财务人员发送警告数据。
2.3基本语法
CREATE TRIGGER 名称
创建触发器,并且为它取一个名称
{BEFORE|AFTER} {INSERT|DELETE|UPDATE} ON 表名
在哪张表添加/删除/修改 的 之前/之后执行
FOR EACH ROW 执行相应的sql
每一行都会执行相应的操作
最后
以上就是想人陪钻石最近收集整理的关于MySQL数据库存储过程及触发器的全部内容,更多相关MySQL数据库存储过程及触发器内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复