【mysql基础系列十七】存储过程

基本概念

存储过程(stored Procedure)是在大型数据库系统中,一组为了完成特定功能的SQL语句集,存储在数据库中,经过第一次编译后再次调用不需要再次编译,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。存储过程是数据库中的一个重要对象(针对SQL变成而言)。

与函数对比

相同点:

    1、都是为了可重复的执行操作数据库的SQL语句的集合。

    2、一次编译,后续执行。

不同点:

    1、标识符:函数(function)、存储过程(procedure)

    2、函数必须有返回值,存储过程没有返回值。即函数可用于select语句,存储过程则不行。

基本操作

1、创建存储过程

当过程体中只有一条语句时,begin and 可以省略

delimiter $$
create procedure 过程名字(参数列表)
begin
  过程体
end
$$
declare ;

案例:求1~100的和


2、查看存储过程

方式一:通过查看procedure状态,查看所有存储过程
show procedure status 【like 'patten'】;

方式二:查看存储过程创建语句

show create procedure 存储过程名;


3、调用存储过程

存储过程也允许提供参数(形参和实参),存储过程的参数也和函数一样,需要指定其类型。

但是存储过程对参数还有额外的要求,它还有自己的一个分类:in、out、inout

call 存储过程名(实参列表);

1、in类型:表示参数从外部传入到里面使用(过程内部使用),可以是直接数据,也可以是保存数据的变量。

2、out类型:表示参数是从存储过程里面把数据保存到变量中,交给外部使用,故传入的必须是变量。如果说传入的out变量本身在外部有数据,那马在进入过程之后,第一件事,就是被清空。设为null

3、inout类型:数据可以从外部传入到内部使用,同时内部操作之后,又会将数据返回给外部。


结果分析:

    (1)执行过程分析,out传入变化


    (2)执行完过程之后,再次查看参数变化


4、删除存储过程

drop procedure 存储过程名;

猜你喜欢

转载自blog.csdn.net/pjz161026/article/details/80947943