Mysql变量

一、系统变量

说明:系统变量是由系统提供,不是用户定义,属于服务器层面
使用语法:

  1. 查看所有的系统变量
show global |session】 variables;
  1. 查看满足部分条件的系统变量
show global |session】 variables like "%char%";
  1. 查看指定某个系统变量的值
select @@global |session.系统变量名;
  1. 为某个系统变量赋值
//方式一
set global |session】 系统变量名 =;
//方式二
set @@global |session.系统变量名 =;

注意:如果是全局级别,则需要加global,如果是会话级别,则需要加session ,如果不写则默认session

1. 全局变量

作用域:服务器每次启动将为所有的全局变量赋初始值,针对于所有的会话(连接)有效,但不能跨重启

  1. 查看所有的全局变量
show global variables;
  1. 查看部分的全局变量
show global varables like "%char%";
  1. 查看指定的全局变量的值
select @@global.autocommit;		//查看自动提交 非0代表true 自动提交
select @@tx_isolation;	//查看隔离级别
  1. 为某个指定的全局变量赋值
set @@global.autocommit = 0;	//设置非自动提交

2. 会话变量

作用域:仅仅对于当前会话(连接)有效

  1. 查看所有的会话变量
show session variables;
show variables;
  1. 查看部分的会话变量
show variables like "%char%";
show session variables like "%char%";
  1. 查看某个指定的会话变量
select @@tx_isolation;
select @@session.tx_isolation;
  1. 为某个会话变量赋值
//方式一:
set @@session.tx_isolation = "read-uncommitted";
//方式二:
set session tx_isolation = "read-committed";

二、自定义变量

说明:由用户自定义的,不是系统的

1. 用户变量

作用域:针对于当前会话(连接)有效,同于会话变量的作用域,应用在任何地方,也就是begin end里面或是 begin end 外面

  1. 声明并初始化
set @用户变量名 =;
set @用户变量名 :=;
select @用户变量名 :=;
  1. 赋值(更新用户变量的值)
方式一:通过setselect
set @用户变量名 =;
set @用户变量名 :=;
select @用户变量名 :=;
方式二: 通过select into
select 字段 into @变量名 from 表名;
  1. 使用 (查看用户变量的值)
select @用户变量名;

2. 局部变量

作用域:仅仅在定义它的begin end中有效,应用在 begin end中的第一句话!!!

  1. 申明
declare 变量名 类型;
declare 变量名 类型 default;
  1. 赋值
方式一:通过setselect
set 局部变量名 =;
set 局部变量名 :=;
select @用户变量名 :=;
方式二: 通过select into
select 字段 into 局部变量名 from 表名;
  1. 使用
select 局部变量;

3. 用户变量和局部变量的区别

			作用域		定义和使用的位置					语法
用户变量:	当前会话		会话中的任何地方					必须加@符号,不用限定类型
局部变量:	begin end中	只能在begin end中,且为第一句话		一般不用加@符号,需要限定类型
  1. 声明两个变量并赋初始值,求和,并打印
//用户变量
set @m = 1;
set @n = 2;
set @sum = @m + @n;
select @sum;
//局部变量
此种写法会报错,必须放到begin end 里面
declare m int default 1;
declare n int default 2;
declare sum int;
set sum = m + n;
select sum;
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值