MySQL数据库之存储过程怎么创建

发布时间:2022-06-16 10:28:03 作者:iii
来源:亿速云 阅读:139

本篇内容介绍了“MySQL数据库之存储过程怎么创建”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

前言:

stored procedure 完成特定功能的SQL语句集,存储在数据库中,经过第一次编译之后再次调用不需要编译(效率较高)

1、存储过程与函数的区别

1.1、相同点

1.2、不同点

2、存储过程的操作

2.1、创建过程

基本语法:

create procedure 过程名字([参数列表])
bengin
    过程体
end
结束符

如果只有只有一条指令可以省略begin和end

create procedure my_pro1()
select * from my_student;

过程基本上可以完成函数对应的所有功能:

-- 修改语句结束符
delimiter $$
-- 创建过程
create procedure my_pro2()
begin
    -- 求1到100之间的和
    -- 创建局部变量
    declare i int default 1;
    -- declare sum int default 0;
    -- 会话变量
    set @sum = 0;
    -- 开始循环获取结果
    while i <= 100 do
        -- 求和
        set @sum = @sum + i;
        set i = i + 1;
    end while;

    -- 显示结果
    select @sum;
end
$$
delimiter ;

2.2、查看过程

-- 查看所有存储过程
show procedure status [like 'pattern'];
-- 查看过程的创建语句
show create procedure 过程名字\G

2.3、调用过程

过程没有返回值

基本语法:

call 过程名([实参列表]);
-- eg:
call my_pro2();
+------+
| @sum |
+------+
| 5050 |
+------+

2.4、删除过程

基本语法:

drop procedure 过程名;

3、存储过程的形参类型

存储过程的参数和函数一样,需要制定其类型

但是存储过程对参数还有额外的要求,自己的参数分类:

代码示例:

-- 创建3个会话变量
set @var1 = 1;
set @var2 = 2;
set @var3 = 3;
-- 查询会话变量
select @var1, @var2, @var3;
+-------+-------+-------+
| @var1 | @var2 | @var3 |
+-------+-------+-------+
|     1 |     2 |     3 |
+-------+-------+-------+
1 row in set (0.00 sec)
-- 修改语句结束符
delimiter $$
-- 定义过程
create procedure my_pro3(in a int, out b int, inout c int)
begin
    -- 查看传入的3个数据值
    select a, b, c;
    -- +------+------+------+
    -- | a    | b    | c    |
    -- +------+------+------+
    -- |    1 | NULL |    3 |
    -- +------+------+------+
    -- 修改3个变量值
    set a = 10;
    set b = 20;
    set c = 30;
    select a, b, c;
    -- +------+------+------+
    -- | a    | b    | c    |
    -- +------+------+------+
    -- |   10 |   20 |   30 |
    -- +------+------+------+
    -- 查看会话变量
    select @var1, @var2, @var3;
    -- +-------+-------+-------+
    -- | @var1 | @var2 | @var3 |
    -- +-------+-------+-------+
    -- |     1 |     2 |     3 |
    -- +-------+-------+-------+
    -- 修改会话变量
    set @var1 = 'a';
    set @var2 = 'b';
    set @var3 = 'c';
    select @var1, @var2, @var3;
    -- +-------+-------+-------+
    -- | @var1 | @var2 | @var3 |
    -- +-------+-------+-------+
    -- | a     | b     | c     |
    -- +-------+-------+-------+
end
$$
delimiter ;
-- 调用过程
call my_pro3(@var1, @var2, @var3);

-- 再次查看会话变量
mysql> select @var1, @var2, @var3;
+-------+-------+-------+
| @var1 | @var2 | @var3 |
+-------+-------+-------+
| a     |    20 |    30 |
+-------+-------+-------+

分析:

“MySQL数据库之存储过程怎么创建”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!

推荐阅读:
  1. mysql 存储过程的创建
  2. Mysql数据库之创建用户

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

mysql

上一篇:Java之Bean的生命周期实例分析

下一篇:.Net Core如何使用Logger实现log写入本地文件系统

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》