mysql创建存储过程语法(MySQL创建存储过程sql语句)

mysql创建存储过程语法(MySQL创建存储过程sql语句)

存储过程

存储过程是一组为了完成特定功能的 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创建存储过程sql语句)

2、带输入参数

查询指定部门的员工信息

mysql创建存储过程语法(MySQL创建存储过程sql语句)

3、带输出参数

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

mysql创建存储过程语法(MySQL创建存储过程sql语句)

注意

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

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

调用

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

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

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

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

mysql创建存储过程语法(MySQL创建存储过程sql语句)

调用

mysql创建存储过程语法(MySQL创建存储过程sql语句)

查看

查看存储过程有三种方式

show procedure status

show create procedure

INFORMATION_ SCHEMA. ROUTINES

mysql创建存储过程语法(MySQL创建存储过程sql语句)

 

mysql创建存储过程语法(MySQL创建存储过程sql语句)

 

mysql创建存储过程语法(MySQL创建存储过程sql语句)

删除

DROP PROCEDURE pro_ name;

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发表评论

登录后才能评论