概念
系统变量:全局变量、会话变量
自定义变量:用户变量、局部变量
系统变量
系统提供,不是用户定义,属于服务器层面
语法:
1.查看所有的系统变量
show global|【session】 variables;
2.查看满足条件的部分系统变量
show global|【session】 variables like ‘%char%’;
3.查看指定的某个系统变量的值
select @@系统变量名;(session可以省略)
select @@global.系统变量名;
4.为某个系统变量赋值
set 系统变量名 = 值;(session可以省略)
set global.系统变量名 = 值;
或者
set @@global|session.系统变量名 = 值;
注意:如果是全局级别,则需加global,如果是会话级别,则需加session,默认不写为session级别。
全局变量
作用域:服务器每次启动将为所有的全局变量赋初始值,针对于所有会话(连接)是有效的,跨连接有效但是不能跨重启,若要重启有效需要修改配置文件。
会话变量
作用域:针对于当前会话(连接)有效。
比全局变量多一些。
自定义变量
变量是用户自定义的,不是系统定义的
1.用户变量
作用域:针对当前会话(连接)有效,同于会话变量的作用域。
应用在任何地方,存储过程 begin end内外都可以。
①声明并初始化
set @用户变量名=值;
set @用户变量名:=值;
select @用户变量名:=值;
②赋值(更新用户变量的值)
方式一:
set @用户变量名=值;
set @用户变量名:=值;
select @用户变量名:=值;
方式二:
select 字段 into 变量名 from 表;
③使用(查看)
select @count;
局部变量
作用域:局部有效,begin end 中有效,begin end中第一句。
①声明
declare 变量名 类型;
declare 变量名 类型 default 值;
②赋值
方式一:
set 局部变量名=值;
set 局部变量名:=值;
select @用户变量名:=值;
方式二:
select 字段 into 局部变量名 from 表;
③使用
select 局部变量名;
学习整理于MySQL 基础+高级篇.
来源:CSDN
作者:WWYDFL
链接:https://blog.csdn.net/weixin_40778497/article/details/103636761