MySQL systemvariables其实就是一些系统参数,用来初始化或者设置数据库对系统资源的占用,文件存储位置等。在本文中,我们来探讨变量。
目录
变量1,系统变量1.1,查看系统变量1.2,修改系统变量2,会话变量3,局部变量4,变量范围4.1,局部范围4.2,会话范围4.3,全局范围。
变量 variables
MySQL本质上是一种编程语言。
1、系统变量
对所有用户客户端有效。
1.1、查看系统变量1.方法1
显示变量[如模式];
例子
mysql显示类似‘自动提交’的变量;
- -
|变量名称|值|
- -
|自动提交|打开|
- -
2.模式2:
使用select查询变量的数据值。
选择@@变量名;
例子
选择@ @自动提交;
-
| @ @自动提交|
-
| 1 |
-
1.2、修改系统变量1.本地修改(会话级)
-仅对于当前客户端,当前连接有效。
设置变量名=值;
-例如:
设置autocommit= off
显示变量,如“自动提交”;
2.全局修改
-所有客户都有效。
设置全局变量name=value
设置@@global。变量名=值;
-例如:
将全局自动提交设置为“off”;
请注意,在全局修改后,重新启动客户端会生效。
2、会话变量
也称为用户变量,set变量仅对当前用户使用的客户端有效。
-定义用户变量。
Set @变量名=值;
set @ age=23
mysql中没有比较符号==但是=;
为了避免赋值和比较之间的混淆,赋值使用:=
Set @变量名:=value
set @ name:= Tom ;
Mysql允许从表中取出数据,存储在变量中,只有一行数据。
-1.分配价值并检查分配过程。
从条件表中选择@ variable 1 :=field 1,@ variable 2 :=field 2
select @name :=name,@ age:=age from my _ student limit 1;
- -
| @name :=name | @age :=age |
- -
|刘备| 18 |
- -
-2.只赋值不看流程。
Select字段1,字段2 from表where条件into @ variable 1,@ variable 2;
select姓名,年龄从my_student限制1到@姓名,@年龄;
查看变量
选择@变量名
mysql select @name,@ age
- -
| @姓名| @年龄|
- -
|刘备| 18 |
- -
3、局部变量
范围介于begin到end语句块和语句块中设置的变量之间。
Declare语句用于定义局部变量。declare语句出现在begin到end语句块之间。
陈述语法
声明变量名数据类型[属性];
4、变量作用域
可以使用变量的区域范围。
4.1、局部作用域Declare关键字声明(用于结构:函数/存储过程/触发器)
declare关键字声明的变量是没有任何符号修饰的普通字符串。如果从外部访问变量,系统会自动将其视为字段。
4.2、会话作用域用户定义的,用@符号定义的变量,set关键字。
当辅助连接有效时,会话范围可以在任何地方使用,只要它在这个连接中(无论是在结构内容中还是跨库)。
会话变量可以在函数内部使用。
Set @name=张三;
create函数get_name()返回char(4)
返回@ name
select get _ name();
-
| get_name() |
-
张三
-
会话变量可以跨库。
使用mydatabase2
mysql select @ name
-
| @name |
-
张三
-
4.3、全局作用域所有客户端、所有连接都是有效的,需要用全局符号定义。
设置全局变量name=value
设置@@global。变量名=值;
通常,在sql编程中,用户定义的变量不用于控制全局。通常,在结构中定义会话变量或使用局部变量来解决问题。
这就是这篇关于MySQL详细解释变量用法的文章。有关MySQL变量的更多信息,请搜索我们以前的文章或继续浏览下面的相关文章。希望你以后能支持我们!