MySQL存储过程和函数(1)

2020-06-27  本文已影响0人  李白开水

概述

存储过程(Stored Procedure)是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,它存储在数据库中,一次编译后永久有效,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。存储过程是数据库中的一个重要对象。在数据量特别庞大的情况下利用存储过程能达到倍速的效率提升

存储过程和函数是事先经过编译并存储在数据库中的一段 SQL 语句的集合,调用存储过程实际上就是就是执行这一段SQL语句。
使用存储过程,可以减少和应用程序之间的交互。
存储函数有返回值,而存储过程没有返回值。

语法

创建存储过程

CREATE PROCEDURE procedure_name ([proc_parameter[,...]])
begin
-- SQL语句
end ;

因为SQL语句要用到一个";",而创建存储过程末尾也需要一个分号,所以在SQL语句使用完分号回车之后,就会直接出错:


image.png

如果把end;写在SQL语句的同一行,也会出错:


image.png

解决办法是新指定一个特殊的分隔符。
使用delimiter + 分隔符来指定。
将分隔符指定为美元符号'$':

image.png
重新创建存储过程:
image.png

调用存储过程

call procedure_name() ;

注意分隔符已经指定为'$'符号了。


image.png

查询存储过程

-- 查询db_name数据库中的所有的存储过程
select name from mysql.proc where db='db_name';

-- 查询存储过程的状态信息
show procedure status;
show procedure status\G;

-- 查询某个存储过程的定义
show create procedure test.pro_test1 \G;

第一种方式:


image.png

这个过程实际上是从MySQL数据结构中的表proc中查询的,所以要指定数据库的名字。

删除存储过程

DROP PROCEDURE [IF EXISTS] sp_name ;
image.png

再查询一下存储过程:


image.png

已经没有啦~

上一篇下一篇

猜你喜欢

热点阅读