mysql存储过程输入参数拆分_mysql的存储过程的概念及创建语法详解

bc56666b1cc79d09ba3066fe9fa8d2b9.png

存储过程

存储过程是一组为了完成特定功能的 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、不带参数

查询每个部门的人数

531b49b67836b179c42d653e348c1e83.png

2、带输入参数

查询指定部门的员工信息

ac8f0b4c4cdb929a3e9ecb915234e96e.png

3、带输出参数

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

138879439064ae8fd24e06bc1e8ec941.png

注意

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

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

调用

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

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

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

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

3112906d7b40110a95c7f22b7a7bd1b1.png

调用

0770d4bbe10e768f14690ef2d729a9e8.png

查看

查看存储过程有三种方式

show procedure status

show create procedure

INFORMATION_ SCHEMA. ROUTINES

01c0d9ada135a8beb5555ff02490cfea.png
11167e9bd644206c740d6aaa15758cbf.png
e4ee4688f387697fc168d222d3022404.png

删除

DROP PROCEDURE pro_ name;

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值