【前言】
一开始在进行机房重构的时候,就听到很多小伙伴们说在机房重构的时候会使用存储过程,是在数据库中编好的SQL语句。感觉听起来很高大上,一点都不接地气啊!所以……没听懂。
下面就让小编带领大家看一下到底什么是存储过程。
首先上图:
一、是什么
存储过程是在大型数据库系统中,一组为了完成特定功能的SQL语句集,存储在数据库中,经过第一次编译后再次调用不需要再次编译,用户通过指定存储过程的名字并给出参数来执行它。存储过程是数据库中的一个重要对象。百度
【个人理解】:存储过程就是将你想要用的一条或者几条SQL语句封装起来,并且可以重复的调用。
二、为什么使用
1.重复使用。存储过程可以重复使用,从而减少数据库开发人员的工作量。
2.减少网络流量。存储过程位于服务器上,调用的时候只需要传递存储过程的名称以及参数就可以了,因此降低了网络传输的数据量。
3.安全性。参数化的存储过程可以防止SQL注入式攻击,而且可以将Grant、Deny以及Revoke权限应用于存储过程。
4.当对数据库进行复杂操作时(如对多个表进行Update,Insert,Query,Delete时),可将此复杂操作作用存储过程封装起来与数据库提供的事物处理结合一起使用。
三、如何使用
创建存储过程:
create procedure sp_name
@[参数名][类型],@[参数名][类型]
as
begin
……
end
调用存储过程:
exec sp_name[参数名]
删除存储过程
drop procedure sp_name
【注意】:不能在一个存储过程中删除另一个存储过程,只能调用 [为什么不能删除,还未实践,实践后方能明白真相……]
四、缺陷
任何一件事物都有它的两面性,那存储过程的缺点是什么呢?还需要我们注意!
1.调试麻烦
2.移植问题,数据库端码当然是与数据库相关的。但是工程型项目,基本不存在移植问题。 [工程型项目还需进一步了解]
3.重新编译问题
4.如果在一个程序系统中大量的使用存储过程,到程序交付使用的时候随着用户需求的增加会导致数据结构的变化,接着就会出现系统的相关问题。