丽水微信网站建设报价,百度指数的数据来源,wordpress用php哪个版本,网页制作素材打包下载前言#xff1a;对于存储过程一直有一种抵触的心理#xff0c;因为毕业至今所在的公司开发组都不是很规范#xff0c;对于开发的一些注意事项并没有很多的规定#xff0c;只是在知乎上查找相关知识的时候#xff0c;看到很多人对于在程序里使用存储过程的不好之处都有很多…前言对于存储过程一直有一种抵触的心理因为毕业至今所在的公司开发组都不是很规范对于开发的一些注意事项并没有很多的规定只是在知乎上查找相关知识的时候看到很多人对于在程序里使用存储过程的不好之处都有很多介绍碧如逻辑不清晰调试难等在项目中也不需要些存储过程所以我也没有认真学习过相关知识但是最近准备面试发现还是有很多公司对于存储过程是有要求的今天写点东西记录一下自己的学习过程其实也就是对别人的博客进行一个自己的汇总。 什么是存储过程 根据百度百科的解释存储过程是在大型关系型数据库中一组完成特定功能的Sql语句集在数据库中经过一次编译之后调用不需要再次编译用户通过指定存储过程的名称并给出参数如果有的话来执行它。 存储过程的优点 1、响应时间上有优势普通sql程序需要验证语句是否正确以及编译优化如果有很多业务逻辑需要进行处理可能会多次链接数据库但是使用存储过程的话就只需要一次预编译之后会被存储到高速缓存里而且运算过程中不需要把数据取出数据库数据库的IO通道效率很差大量数据取出来很浪费时间 2、对于系统的稳定性有帮助程序可能会出BUG导致系统不稳定而存储过程则只要数据库不出现问题基本上不会出现问题 3、减少了网络流量只需要传输存储过程的名称和参数即可从而降低了传输量 4、增强系统安全性参数化的存储过程可以防止SQL注入只授权部分用户修改存储过程的权限 5、可可重复使用使得服务器端开发和数据库开发同时进行加快开发速度 6、发布程序方便快捷如果使用常规的sql语句来处理业务逻辑业务修改需要重新编译然后停止程序进行发布但是如果业务逻辑写在存储过程中只需要修改存储过程即可提高了程序的可移植性。
不过现在有些框架支持把Sql写到配置文件里面只需要修改配置文件就可以修改业务。 存储过程的缺点 1、移植困难不同类型的数据库存储过程语言差距巨大基本上无法直接移植 2、存储过程本身运算性能很差而且无法进行封装不符合OOP的思想 3、对于开发和维护的的成本较高。 存过过程的写法
无参无输出的存储过程
Create procedure 存储过程名
as
SQL语句
带参无输出的存储过程
Create procedure 存储过程名
参数 参数类型
as
SQL语句
带参带输出的存储过程
Create procedure 存储过程名
参数 参数类型
返回值 返回类型 output
as
SQL语句 CREATE procedure proc_Test
orderNum int,
flag bit OUTPUT
as
if exists(
select * from SaleOrder where OrderNumber orderNum)
select flag1
else
select flag0//执行
DECLARE re int EXEC proc_Test 10,re outputSELECT re as 返回值