存储过程是为了完成特定功能的SQL语句集,经编译创建并保存在数据库中,用户可通过指定存储过程的名字并给定参数来调用执行。
存储过程思想上很简单,就是数据库SQL语言层面的代码封装与重用,通俗来讲存储过程其实就是能完成一定操作的一组SQL语句
========================================================================
优点
-
存储过程可封装,并隐藏复杂的商业逻辑。
-
存储过程可以回传值,并可以接受参数。
-
存储过程无法使用SELECT指令来运行,因为他是子程序,与查看表,数据表或用户定义函数不同。
-
存储过程可以用在数据校验,强制实行商业逻辑等。
缺点
-
存储过程,往往定制化于特定的数据库上,因为支持的编程语言的不同。当切换到其他产商的数据库系统时,需要重写原有的存储过程
-
存储过程的性能调校于撰写,受限于各种数据库系统
==========================================================================
-
存储过程就是具有名字的一段代码,用来完成一个特定的功能
-
创建的存储过程保存在数据库的数据字典中
CREATE
[DEFINER = {user| CURRENT_USER }]
PROCEDURE sp_name ([proc_parameter[…]])
[characteristic …] routine_body
[begin_lavle:]
BEGIN
[statement_list]
END [end_label]
proc_parameter:
[IN | OUT | INOUT ] param_name type 三种类型
routine_body:校验SQL运行时的一些参数
valid SQL routine statement
DELIMITER $$
或
DELIMITER //
在mysql8.0之后的版本也可直接用;结尾
声明存储过程: