MySQL-存储过程、触发器、视图

MySQL中的其他特性

MySQL存储过程

Mysql存储过程是一组为了完成特定功能的SQL语句集,经过编译之后存储在数据库中,在需要时直接调用。

存储过程简单来说,就是为以后的使用而保存的一条或多条MySQL语句的集合。

存储过程就像脚本语言中函数定义一样。

例如以下的情形。

  • 为了处理订单,需要核对以保证库存中有相应的物品。
  • 如果库存有物品,需要预定以便不将它们再卖给别的人, 并减少可用的物品数量以反映正确的库存量。
  • 库存中没有的物品需要订购,这需要与供应商进行某种交互。

执行这个处理需要针对许多表的多条MySQL语句。可能需要执行的具体语句及其次序也不是固定的。
那么,怎样编写此代码?可以单独编写每条语句,并根据结果有条件地执行另外的语句。
在每次需要这个处理时(以及每个需要它的应⽤中)都必须做这些工作。

为了方便处理,可以创建存储过程。

存储过程的优点:

  • 可以把一些复杂的sql进行封装,简化复杂操作
  • 保证了数据的完整性,防止错误
  • 简单的变动只需要更改存储过程的代码即可
  • 提高性能。因为使用存储过程比使用单独的SQL语句要快。(预先编译)

存储过程的缺点:

  • 业务逻辑不要封装在数据库里面,应该由应用程序(JAVA、Python、PHP)处理。
  • 让数据库只做它擅长和必须做的,减少数据库资源和性能的消耗。
  • 维护困难,大量业务逻辑封装在存储过程中,造成业务逻辑很难剥离出来。动A影响B。
  • 人员也难招聘,因为既懂存储过程,又懂业务的人少。使用困难。

在电信、银行行业、金融方面以及国企都普遍使用存储过程来熟悉业务逻辑,但在互联网中相对较少。

创建存储过程

\d //将MySQL默认的语句结尾符;修改为//

创建语句:create procedure

BEGIN和END语句用来限定存储过程体

-- 定义存储过程
\d //
-- 创建存储过程p1()
create procedure p1()
begin
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值