第一章、简介
网上百度了好几篇博客,都没有说明存储过程是什么东西?然后这个东西有什么用? 从马克思认识论上来看,我们必须先认识事物是什么东西(即本质),然后才进一步认识事物是用来干嘛的(即属性)。于是,参考了下面的这篇CSDN论坛,和大家分享下,什么是存储过程,它又有什么用。 https://bbs.csdn.net/topics/390631696
第二章、什么是存储过程
https://blog.csdn.net/z1729734271/article/details/52785013
- 存储过程是SQL语句。
- 存储过程(Stored Procedure)是一组为了完成特定功能的SQL 语句集,经编译后存储在数据库。用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。
- 存储过程是数据库层次的东西,一般我们在程序中使用sql语句都会在DBMS中经过编译运行,而存储过程是经过预编译的,因此执行速度更快。而且相比较把数据库相关的操作放到数据库中要比直接放到页面中“安全”。
按照我的理解,存储过程就是如何增删改查数据表的过程,该过程以 SQL语句 形式表达出来, SQL语句 经过编译后被数据库保存,以达到更快、更安全目的。比直接在VS2015写C#语句访问数据表更快更安全。
第三章、存储过程有什么用
https://zhidao.baidu.com/question/179331690.html
https://bbs.csdn.net/topics/390631696
- 存储过程具有对数据库立即访问的功能。
- 使用存储过程可以加快程序的运行速度。
- 使用存储过程可以减少网络流量。
- 使用存储过程可以提高数据库的安全性。
具体如下:
(1)、减少网络通信量。
调用一个行数不多的存储过程与直接调用SQL语句的网络通信量可能不会有很大的差别,可是如果存储过程包含上百行SQL语句,那么其性能绝对比一条一条的调用SQL语句要高得多。
(2)、执行速度更快。
有两个原因:首先,在存储过程创建的时候,数据库已经对其进行了一次解析和优化。其次,存储过程一旦执行,在内存中就会保留一份这个存储过程,这样下次再执行同样的存储过程时,可以从内存中直接调用。
(3)、更强的适应性。
由于存储过程对数据库的访问是通过存储过程来进行的,因此数据库开发人员可以在不改动存储过程接口的情况下对数据库进行任何改动,而这些改动不会对应用程序造成影响。
(4)、布式工作。
应用程序和数据库的编码工作可以分别独立进行,而不会相互压制。
第四章、存储过程使用方法
http://www.cnblogs.com/selene/p/4483612.html(重点)
https://www.cnblogs.com/kakarottoz/p/4947965.html
https://www.cnblogs.com/chaoa/articles/3894311.html
书本中,提到利用CarID可以快速获取到其对应的名字。
于是,我把该章节实践了一下:
其对应的代码为:
CREATE PROCEDURE GetPetName
@carID int,
@petName char(10) output
AS
SELECT @petName = PetName from Inventory where CarID = @carID
存储过程的名字为GetPetName,它根据第一行代码 而自动保存为GetPetName:
CREATE PROCEDURE GetPetName