您的当前位置:首页正文

inout在mysql存储中怎么用

2022-06-15 来源:知库网

mysql数据库的存储里,我们已经学过了输入和输出的参数。还有一种参数结合了前面所说两种参数的优势,既能输入也可以输出,不过在值上跟一样,局限于变量,这个参数的名称是inout。下面我们一起来看看inout参数的基本使用以及需要注意的点吧。

1.inout输入输出参数概念:

既表示调用者向过程传入值,又表示过程向调用者传出值(值只能是变量)

2.使用示例:

mysql> delimiter $$
mysql> create procedure inout_param(inout p_inout int)
    ->   begin
    ->     select p_inout;
    ->     set p_inout=2;
    ->     select p_inout;
    ->   end
    -> $$
mysql> delimiter ;
 
mysql> set @p_inout=1;
 
mysql> call inout_param(@p_inout);
+---------+
| p_inout |
+---------+
|       1 |
+---------+
 
+---------+
| p_inout |
+---------+
|       2 |
+---------+
 
mysql> select @p_inout;
+----------+
| @p_inout |
+----------+
|        2 |
+----------+

调用了inout_param存储过程,接受了输入的参数,也输出参数,改变了变量

注意:

①如果过程没有参数,也必须在过程名后面写上小括号

例:CREATE PROCEDURE sp_name ([proc_parameter[,...]]) ……

②确保参数的名字不等于列的名字,否则在过程体中,参数名被当做列名来处理

拓展mysql字符串函数:

1.LEFT(s,n)、RIGHT(s,n)

前者返回字符串s从最左边开始的n个字符,后者返回字符串s从最右边开始的n个字符

2.LPAD(s1,len,s2)、RPAD(s1,len,s2)

前者返回s1,其左边由字符串s2填补到len字符长度,假如s1的长度大于len,则返回值被缩短至len字符;前者返回s1,其右边由字符串s2填补到len字符长度,假如s1的长度大于len,则返回值被缩短至len字符

3.LTRIM(s)、RTRIM(s)

前者返回字符串s,其左边所有空格被删除;后者返回字符串s,其右边所有空格被删除

4.TRIM(s)

返回字符串s删除了两边空格之后的字符串

5.TRIM(s1 FROM s)

删除字符串s两端所有子字符串s1,未指定s1的情况下则默认删除空格

以上就是mysql存储中inout参数的基本使用,在参数名称和功能上都像是in和out参数的结合。但是不推荐新手使用inout参数,因为使用时的注意点比较多。

本文教程操作环境:windows7系统、mysql5.8,DELL G3电脑。

显示全文