mysql变量篇

变量的分类

在这里插入图片描述

变量的作用

如上图所示变量主要是系统变量和自定义变量,其中系统变量主要是mysql数据库系统自带的,启动即加载。

系统变量注意点:

1.全局变量作用域:当前会话及后开启的新会话(数据库未重启状态下);
2.会话变量作用域:当前会话,新开启会话无效,数据库重启后变量无效;
3.想要变量永久生效?只能写入配置文件中,并重启数据库。
4.select @@autocommit=0;            --查询会话变量
  select @@global.autocommit=0;     --查询全局变量

熟知的一些系统变量:

mysql>  show variables;				--查询所有会话变量

mysql>  show global variables;		--查询所有全局变量

这个我还没整理出来,平时用到的比较少,比如autocommit、隔离级别之类的。

自定义变量注意点:

1.局部变量作用域:仅限begin end中,超出范围无效;
2.用户变量作用域:仅限当前会话;

变量的使用

1.系统变量因为其作用于数据库系统,所以都是有固定参数设置,比如开启1、关闭0之类的。
2.自定义变量作用于业务sql语句中,所以使用比较多,尤其是存储过程中(终于说到了重点)

由于系统变量都是系统自带的,下面不作更多的分析(这个属于系统层面的优化吧?)

变量的申明:

局部变量:

mysql> declare test int default 0;
#declare语句专门用于定义局部变量

语法:declare 变量名 类型 default 初始化值;

用户变量:

mysql> set @test=1;
mysql> set @test1:=1;
mysql> select @ test2:=2;
#用户变量申明时顺带就赋值了,赋值时可以用=也可以用:=,使用select赋值时必须使用:=

变量的赋值:

局部变量:

mysql> ……
mysql> begin
mysql> declare test int default 0;
mysql> select 1 into test ;
mysql> end;

用户变量:

mysql> set @test=1;
Query OK, 0 rows affected (0.01 sec)
mysql> set @test=1+1;
Query OK, 0 rows affected (0.01 sec)
mysql> select @test;
+-------+
| @test |
+-------+
|     2 |
+-------+
1 row in set (0.00 sec)

mysql> set @test=1+@test;
Query OK, 0 rows affected (0.00 sec)

mysql> select @test;
+-------+
| @test |
+-------+
|     3 |
+-------+
1 row in set (0.00 sec)

今天变量就到这里,我要去复习存储过程了!各位加油鸭!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值