mysql数据库的存储里,我们已经学过了输入和输出的参数。还有一种参数结合了前面所说两种参数的优势,既能输入也可以输出,不过在值上跟out参数一样,局限于变量,这个参数的名称是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电脑。