mysql变量用法实例分析【系统变量、用户变量】
本文实例讲述了mysql变量用法。分享给大家供大家参考,具体如下:
本文内容:
系统变量 用户变量 局部变量首发日期: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 变量名;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常用函数大汇总》、《MySQL日志操作技巧大全》、《MySQL事务操作技巧汇总》、《MySQL存储过程技巧大全》及《MySQL数据库锁相关技巧汇总》
希望本文所述对大家MySQL数据库计有所帮助。
您可能感兴趣的文章
- 12-31hiredis从安装到项目实战操作
- 12-31phpmyadmin登录时怎么指定服务器ip和端口
- 12-31MySQL线上死锁分析实战
- 12-31MySQL 触发器的使用和理解
- 12-31MySQL 字段默认值该如何设置
- 12-31Redis主从同步配置的方法步骤(图文)
- 12-31MySQL 字符串拆分操作(含分隔符的字符串截取)
- 12-31redis 交集、并集、差集的具体使用
- 12-31MySQL精讲之二:DML数据操作语句
- 12-31PostgreSQL判断字符串是否包含目标字符串的多种方法


阅读排行
推荐教程
- 12-23PL/SQL登录Oracle数据库报错ORA-12154:TNS:无法解析指定的连接标识符
- 12-23使用imp和exp命令对Oracle数据库进行导入导出操作详解
- 12-11mysql代码执行结构实例分析【顺序、分支、循环结构】
- 12-08添加mysql的用户名和密码是什么语句?
- 12-05mysql的事务,隔离级别和锁用法实例分析
- 12-23详解Oracle游标的简易用法
- 12-20PhpMyAdmin出现错误数据无法导出怎么办?
- 12-19Redis中实现查找某个值的范围
- 12-15浅析mysql迁移到clickhouse的5种方法
- 12-15CentOS7 64位下MySQL5.7安装与配置教程




