mysql存储过程菜鸟教程_[数据库]MYSQL之存储过程

本文介绍了MySQL存储过程的特点、优缺点及适用场景,强调其在简化复杂操作、保证数据一致性和提高性能上的作用。通过示例详细讲解了如何创建和调用无参数、含输入参数(IN)、输出参数(OUT)、输入输出参数(INOUT)的存储过程,以及如何实现循环存储过程。最后,阐述了查看和删除存储过程的方法。
摘要由CSDN通过智能技术生成

一 存储过程的特点

MySQL 5.0 版本开始支持存储过程

1.1 定义

存储过程(Stored Procedure)是一种在数据库中存储复杂程序,以便外部程序调用的一种数据库对象。

存储过程是为了完成特定功能的SQL语句集,经编译创建并保存在数据库中,用户可通过指定存储过程的名字并给定参数(需要时)来调用执行。

存储过程在思想上很简单,就是数据库 SQL 语言层面的【代码封装与重用】。

1.2 优点

存储过程【可封装】,并【隐藏复杂的商业逻辑】。

存储过程【可回传值】,并【可接受参数】。

存储过程【无法使用 SELECT 指令来运行】。因为它是子程序,与查看表,数据表或用户定义函数不同。

存储过程【可用在数据检验】,【强制实行商业逻辑】等。

存储过程简单来说,就是为以后的使用而保存的一条或多条MySQL语句的集合。可将其视为批文件,虽然它们的作用不仅限于批处理。

1.3 缺点

尽管有这些缺陷,存储过程还是非常有用的,并且应该尽可能地使用。

【移植性:差】。往往定制化于特定的数据库上,因为支持的编程语言不同。当切换到其他厂商的数据库系统时,需要重写原有的存储过程。

【编程开发的复杂程度:高】。一般来说,存储过程的编写比基本SQL语句复杂,编写存储过程需要更高的技能,更丰富的经验。

用户可能【没有创建存储过程的安全访问权限】。许多数据库管理员限制存储过程的创建权限,允许用户使用存储过程,但不允许他们创建存储过程。

1.4 具体业务场景

迄今为止,使用的大多数SQL语句都是针对一个或多个表的单条语句。并非所有操作都这么简单,经常会有一个完整的操作需要多条语句才能完成。例如,考虑以下的情形。

为了处理订单,需要核对以保证库存中有相应的物品。

如果库存有物品,这些物品需要预定以便不将它们再卖给别的人,并且要减少可用的物品数量以反映正确的库存量。

库存中没有的物品需要订购,这需要与供应商进行某种交互。

关于哪些物品入库(并且可以立即发货)和哪些物品退订,需要通知相应的客户。

1.5 适用场景:简单、安全、高性能

1通过把处理封装在容易使用的单元中,【简化复杂的操作】。

2由于不要求反复建立一系列处理步骤,这【保证了数据的完整性和一致性】。如果所有开发人员和应用程序都使用同一(试验和测试)存储过程,则所使用的代码都是相同的。这一点的延伸就是【防止错误】。需要执行的步骤越多,出错的可能性就越大。防止错误保证了数据的一致性。

3【简化对变动的管理】。如果表名、列名或业务逻辑(或别的内容)有变化,只需要更改存储过程的代码。使用它的人员甚至不需要知道这些变化。这一点的延伸就是【安全性】。通过存储过程限制对基础数据的访问减少了数据讹误(无意识的或别的原因所导致的数据讹误)的机会。

4【提高性能】。因为使用存储过程比使用单独的SQL语句要快。

5存在一些只能用在单

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值