存储过程(stored procedure)是在大型数据库系统中,一组为了完成特定功能的SQL语句集,存储在数据库中,通过第一次编译后再次调用不须要再次编译,(效率比较高)用户经过指定存储过程的名字并给出参数(若是该存储过程带有参数)来执行它。存储过程是数据库中的一个重要对象(针对SQL编程而言)。数据库
存储过程:简称过程编程
一、存储过程和函数的目的都是为了可重复地执行操做数据库的SQL语句的集合(代码复用)函数
二、存储过程、函数都是一次编译,后续执行3d
一、标识符不一样。函数的标识符为function,过程为procedure对象
二、函数中有返回值,且必须返回,而过程没有返回值blog
三、过程无返回值类型,不能将结果直接赋值给变量;函数有返回值类型,调用时,除在select中,必须将返回值赋给变量io
四、函数能够在select语句中直接使用,而过程不能。函数是使用select调用,而过程不是编译
基本语法:function
create procedure 过程名字([参数列表])效率
beign
过程体
end
结束符号
若是过程体中只有一条指令,那么能够省略begin 和end
过程基本上也能够完成函数对应的全部功能
查看过程和查看函数彻底同样,除了关键字。
查看所有存储过程:show procedure status [like ‘pattern’];
查看过程的建立语句:show create procedure 过程名字;
过程,没有返回值,select不可能调用。
调用过程有专门的语法:call 过程名([实参列表]);
基本语法:drop procedure 过程名字;
存储过程也容许提供参数(形参和实参),存储过程的参数也和函数同样,须要指定其类型。
可是存储过程对参数还有额外的要求:本身的参数分类
表示参数从外部传入到里面使用(过程内部使用):能够是直接数据也能够是保存数据的变量
表示参数是从过程里面把数据保存到变量中,交给外部使用:传入的必须是变量
若是说传入的out变量自己在外部有值,那么在进入过程以后第一件事就是被清空设为NULL
数据能够从外部传入到过程内部使用,同时内部操做以后,又会将数据返还给外部。
参数使用基本语法:
过程类型 变量名 数据类型;//in int_1 int;
在执行以后,再次查看会话变量。