mysql创建一个带有参数的存储过程(mysql的存储过程的概念及创建语法详解)(1)

存储过程

存储过程是一组为了完成特定功能的 SQL 语句集合。使用存储过程的目的是将常用或复杂 的工作,预先用 SQL语句写好并用一个指定名称存储起来,这个过程经编译和优化后存储 在数据库服务器中,因此称为存储过程。以后需要数据库提供与已定义好的存储过程的功 能相同的服务时,只需用 CALL 语句来调用存储过程名字,即可自动完成命令。

优点
  1. 运行效率高。存储过程在创建时已经对其进行了语法分析及优化工作,并且存储过程一旦执行,在

内存中会保留该存储过程,当数据库服务器再次调用该存储过程时,可以直接从内存中进行读取,

所以执行速度更快。

2.降低了网络通信量。使用存储过程可以实现客户机只需通过网络向服务器发出存储过程的名字和参

数,就可以执行许多条的 SQL 语句。在存储过程包含上百行的 SQL 语句时,执行性能尤为明显。

3.业务逻辑可以封装在存储过程中,方便实施企业规则。利用存储过程将企业规则的运算程序存储在

数据库服务器中,由 RDBMS 统一来管理,当用户的规则发生变化时,可以只修改存储过程,无需修

改其它的应用程序,这样不仅容易维护,而且简化了复杂的操作。

创建

创建存储过程,需要使用 CREATE PROCEDURE 语句,基本语法格式如下。

CREATE PROCEDURE proc_ name ([proc_ parameter[,...]])

[characteristic ...] routine_ body

参数解释:

(1)proc_parameter 指定存储过程的参数列表,列表形式如下。

[IN| OUT| INOUT] param_name type

其中:

⚫ IN 表示输入参数;

⚫ OUT 表示输出参数;

⚫ INOUT 表示既可以输入也可以输出;

⚫ param_name 表示参数名称,

⚫ type 表示参数的类型,该类型可以是 mysql 数据库中的任意类型。

(2)characteristics 指定存储过程的特性。

(3) routine_body是 SQL代码的内容,可以用 BEGIN...END 来表示SQL代码的开始和结束。

示例

1、不带参数

查询每个部门的人数

mysql创建一个带有参数的存储过程(mysql的存储过程的概念及创建语法详解)(2)

2、带输入参数

查询指定部门的员工信息

mysql创建一个带有参数的存储过程(mysql的存储过程的概念及创建语法详解)(3)

3、带输出参数

查询男员工的人数,并输出

mysql创建一个带有参数的存储过程(mysql的存储过程的概念及创建语法详解)(4)

注意

由括号包围的参数列必须总是存在。如果没有参数,也该使用一个空参数列()。每个参数 默认都是一个 IN 参数。要指定为其他参数,可在参数名之前使用关键词 OUT或 INOUT。

参数不要和表的字段名一样

调用

CALL语句调用一个使用 CREATE PROCEDURE 创建好的存储过程,基本语法如下。

CALL sp_ name([ parameter[,...]])

我们还是先创建一个存储过程:

查询指定部门的平均年龄,并调用

mysql创建一个带有参数的存储过程(mysql的存储过程的概念及创建语法详解)(5)

调用

mysql创建一个带有参数的存储过程(mysql的存储过程的概念及创建语法详解)(6)

查看

查看存储过程有三种方式

show procedure status

show create procedure

INFORMATION_ SCHEMA. ROUTINES

mysql创建一个带有参数的存储过程(mysql的存储过程的概念及创建语法详解)(7)

mysql创建一个带有参数的存储过程(mysql的存储过程的概念及创建语法详解)(8)

mysql创建一个带有参数的存储过程(mysql的存储过程的概念及创建语法详解)(9)

删除

DROP PROCEDURE pro_ name;

今天我的分享就到这里,大家有没有什么好的学习方法呢?欢迎来留言评论,和我们一起交流。如果喜欢我的文章,也欢迎大家关注、点赞、转发。我是丫丫,一个专注分享项目实战技能的IT从业者。

,