存储过程
存储过程是一组预先编辑好的SQL
语句组成,编译后存储在数据库中。可以将它们视为批文件,但是它们的作用不仅仅是批处理。MySQL5
开始支持存储过程。存储过程可包含:
- 程序流、逻辑及对数据库的查询。
- 它们可以接受参数、输出参数
- 返回单个或者多个结果集及返回值。
为什么要用存储过程
- 简化操作:将处理封装在一个简单易用的单元中,简化复杂的操作
- 防止错误:没有必要建立一系列重复性的处理步骤,保证数据的一致性。如果开发和应用人员使用的是同一存储过程,保证了使用的代码是相同的。
- 安全性:通过存储过程限制对基础数据库的访问,减少数据讹误。
- 提高性能:存储过程是以编译过的形式存储,
DBMS
处理命令需要的时间少,提高了性能。
总结:
1、简单
2、安全
3、高性能
关键字
IN
:表示该参数的值必须在调用存储过程时指定,这个不能被返回
OUT
:表示该参数的值可以被存储过程改变,并且可以返回。
INOUT
:表示该参数的值在调用时指定,并且可以改变和返回。
过程体
1、过程体由合法的SQL
语句构成;
2、过程体可以是任意的SQL
语句构成;
3、过程体如果为复合结构则使用BEGIN...END
语句;
4、复合结构可以声明变量,循环,控制流程