在进超市挑选商品之前,如果我们随行携带的物品较多或过大时,就需要找一个柜子进行储存。每个柜格的大小一致,对于存放的物品也在一定程度上有了限制。小编最近一直在思考,我们用数据库mysql存储的可以是哪些对象,有没有类似的限制要求。今天我们就mysql的存储过程、存储类型以及优缺点进行学习。
一、什么是存储过程?
简单的说,存储过程是一条或者多条SQL语句的集合,可视为批文件,但是其作用不限于批处理。
我们常用的 *** 作数据库语言SQL语句在执行的时候需要要先编译,然后执行,而存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给定参数(如果该存储过程带有参数)来调用执行它。
一个存储过程是一个可编程的函数,它在数据库中创建并保存。它可以有SQL语句和一些特殊的控制结构组成。当希望在不同的应用程序或平台上执行相同的函数,或者封装特定功能时,存储过程是非常有用的。数据库中的存储过程可以看做是对编程中面向对象方法的模拟。它允许控制数据的访问方式。
二、数据库存储过程程序
当我们了解存储过程是什么之后,就需要了解数据库中存在的这三种类型的数据库存储类型程序,如下:
存储过程: 存储过程是最常见的存储程序,存储过程是能够接受输入和输出参数并且能够在请求时被执行的程序单元。
存储函数: 存储函数和存储过程很相像,但是它的执行结果会返回一个值。最重要的是存储函数可以被用来充当标准的 SQL 语句,允许程序员有效的扩展 SQL 语言的能力。
触发器: 触发器是用来响应激活或者触发数据库行为事件的存储程序。通常,触发器用来作为数据库 *** 作语言的响应而被调用,触发器可以被用来作为数据校验和自动反向格式化。
注意: 其他的数据库提供了别的数据存储程序,包括包和类。目前MySQL不提供这种结构。
三、存储过程的优缺点
优点:
在生产环境下,可以通过直接修改存储过程的方式修改业务逻辑或bug,而不用重启服务器。
执行速度快,存储过程经过编译之后会比单独一条一条编译执行要快很多。
减少网络传输流量。
便于开发者或DBA使用和维护。
在相同数据库语法的情况下,改善了可移植性。
缺点:
过程化编程,复杂业务处理的维护成本高。
调试不便。
因为不同数据库语法不一致,不同数据库之间可移植性差。
通过本篇的学习,我们可以明确数据库mysql的四种存储类型。小伙伴们在进行存储前,可以对应的查看一下,因为其他的类型mysql是不支持的,这点小伙伴们需要注意啦。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)