存储过程

 1 -- 存储过程  相当于没有返回值的函数
 2     -- 创建过程
 3     -- create procedure 过程名 ([参数名])
 4     -- begin
 5         -- 过程体
 6     -- end
 7     -- 查看过程
 8         -- show procedure status [like 'pro'];
 9     -- 查看创建语句
10         -- show create procedure;
11     -- 调用过程 过程无返回值 无法用select调用
12         -- call 过程名(参数名);
13     -- 删除过程
14         -- drop  procedure 过程名;
15     -- 过程参数
16         -- 过程有自己的参数类型限定
17         IN :可以是数值也可以是变量,数据只是从外部传入内部使用,
18         OUT :只能是变量,内部修改会影响外部,只允许过程内部使用(不用外部数据),外部给的变量被先清空才会进入内部,可以将内部获得的值返回给外部使用
19         INOUT :只能传递变量 内部修改会影响外,外部修改也会影响内部
20         -- 基本使用
21         -- create procedure 过程名(int 形参名字 数据类型 ,out 形参名字 数据类型,inout 形参名字 数据类型)
22         -- 
23         -- 存储过程相对于变量曹组是滞后的,在存储过程调用结束后,系统会将局部变量返回给全局变量
24         SET @int_1 = 1;
25         SET @int_2 = 2;
26         SET @int_3 = 3;
27         DELIMITER $$
28         CREATE PROCEDURE pro1(IN int_1 INT,OUT int_2 INT, INOUT int_3 INT)
29         -- CREATE PROCEDURE pro1()
30         BEGIN
31             -- 查看三个变量
32             SELECT int_1,int_2,int_3;
33             -- int_2值一定为null ,
34             SET int_1 = int_1+5;
35             SET int_2 = int_2+5;
36             SET int_3 = int_3+5;
37             SELECT int_1,int_2,int_3;
38             -- 查看全局变量
39             SELECT @int_1,@int_2,@int_3;
40         END$$
41         DELIMITER ;
42     
43         SELECT @int_1,@int_2,@int_3;
44         CALL tt.pro1(@int_1,@int_2,@int_3);
45         SELECT @int_1,@int_2,@int_3;
46         
47         mysql> SELECT @int_1,@int_2,@int_3;

 

 

 1         mysql> SELECT @int_1,@int_2,@int_3;
 2 +--------+--------+--------+
 3 | @int_1 | @int_2 | @int_3 |
 4 +--------+--------+--------+
 5 |      1 |      2 |      3 |
 6 +--------+--------+--------+
 7 1 ROW IN SET (0.00 sec)
 8 
 9 mysql> CALL tt.pro1(@int_1,@int_2,@int_3);
10 +-------+-------+-------+
11 | int_1 | int_2 | int_3 |
12 +-------+-------+-------+
13 |     1 |  NULL |     3 |
14 +-------+-------+-------+
15 1 ROW IN SET (0.01 sec)
16 
17 +-------+-------+-------+
18 | int_1 | int_2 | int_3 |
19 +-------+-------+-------+
20 |     6 |  NULL |     8 |
21 +-------+-------+-------+
22 1 ROW IN SET (0.05 sec)
23 
24 +--------+--------+--------+
25 | @int_1 | @int_2 | @int_3 |
26 +--------+--------+--------+
27 |      1 |      2 |      3 |
28 +--------+--------+--------+
29 1 ROW IN SET (0.11 sec)
30 
31 QUERY OK, 0 ROWS affected (0.16 sec)
32 
33 mysql> SELECT @int_1,@int_2,@int_3;
34 +--------+--------+--------+
35 | @int_1 | @int_2 | @int_3 |
36 +--------+--------+--------+
37 |      1 |   NULL |      8 |
38 +--------+--------+--------+
39 1 ROW IN SET (0.00 sec)
40 
41 mysql>
42     

 

转载于:https://www.cnblogs.com/the-wang/p/7860385.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值