如何使用mysql变量
小编这次要给大家分享的是如何使用MySQL变量,文章内容丰富,感兴趣的小伙伴可以来了解一下,希望大家阅读完这篇文章之后能够有所收获。
创新互联公司专注于企业成都全网营销、网站重做改版、芦溪网站定制设计、自适应品牌网站建设、H5高端网站建设、商城系统网站开发、集团公司官网建设、外贸营销网站建设、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为芦溪等各大城市提供网站开发制作服务。
本文内容:
- 系统变量
- 用户变量
- 局部变量
首发日期:2018-04-18
系统变量:
- 系统变量就是系统已经提前定义好了的变量
- 系统变量一般都有其特殊意义。比如某些变量代表字符集、某些变量代表某些mysql文件位置
- 系统变量中包括会话级变量(当次会话连接生效的变量,如names),以及全局变量(一直生效的变量) 【系统变量中全局变量和会话变量其实是使用一套变量,不同的是会话变量仅当次会话生效。】
- 会话变量的赋值:set 变量名 = 值; 【比如常用的set names ="utf8";】或者set @@变量名=值
- 全局变量的赋值:set global 变量名 = 值;
查看系统变量:
- show variables;
系统变量的调用:
- select @@变量名;
用户变量:
- 用户变量就是用户自己定义的变量。
- 系统为了区别系统变量跟自定义变量,规定用户自定义变量必须使用一个@符号
- 变量的定义方式:
set @变量名=1
- select @变量名:=值;
- select 值 into @变量名;
- 用户变量可以不声明定义,就可以直接使用,不过默认是null值
- 用户变量都是会话级的变量,仅在当次连接中生效。
局部变量:
- 由于局部变量是用户自定义的,可以认为局部变量也是用户变量【但有所不同,局部中不需要使用@】
- 局部变量一般用在sql语句块中,比如存储过程块、触发器块等
- 局部变量的定义方法:
- 先使用declare声明局部变量,其中可选项default后面可以跟一个付给变量的默认值:【非常重要的一步,不然会设置成用户变量】【注意:变量声明语句要在其他语句如select语句之前】
- 示例:declare myq int;
- 示例:declare myq int default 666;
- 设置变量的值:
- set 变量名= 值;
- 获取变量的值:
- select 变量名;
- 先使用declare声明局部变量,其中可选项default后面可以跟一个付给变量的默认值:【非常重要的一步,不然会设置成用户变量】【注意:变量声明语句要在其他语句如select语句之前】
create procedure myset() begin declare mya int; declare myq int default 777; select mya,myq; set myq=6; set mya=666; select mya,myq; end; call myset();
补充:
- 有些人可能会发现直接set 变量名=值;也可以定义“用户变量”;但这是一种不好的行为【这种行为忽略了各自变量的功能】,因为你不知道会不会跟系统变量冲突,所以最好用户变量加上@
- 因为 = ,有很多地方都用来判断是否等于,为了避免歧义,也可以使用:=来赋值
- 【上面虽然给了一些其他的赋值方法,但好像有一些是不通用的,比如:=只用于用户变量,所以要审慎使用】。
看完这篇关于如何使用mysql变量的文章,如果觉得文章内容写得不错的话,可以把它分享出去给更多人看到。
网页题目:如何使用mysql变量
文章地址:http://scyanting.com/article/jgoesi.html