• 存储过程


     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     
  • 相关阅读:
    Go语言http之请求接收和处理 代码
    C++之IO流的状态以及使用
    C++之指向函数的指针
    C++之数组类型的形参
    C++之vector类型的形参
    C++之形参
    C++之运算符
    C++之多维数组
    C++之动态数组
    C++之指针
  • 原文地址:https://www.cnblogs.com/the-wang/p/7860385.html
Copyright © 2020-2023  润新知