900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > MySQL对用户变量 系统变量 局部变量详解

MySQL对用户变量 系统变量 局部变量详解

时间:2020-03-07 20:48:42

相关推荐

MySQL对用户变量 系统变量 局部变量详解

目录

1 变量分类

1.1 用户变量

1.1.1 用户变量定义

1.1.2 用户变量操作

1.2 系统变量

1.2.1 系统变量定义

1.2.2 系统全局变量

1.2.3 系统会话变量

1.3 局部变量

1.3.1 局部变量定义

1.3.2 赋值

1 变量分类

MySQL数据库中的变量分为MySQL系统变量MySQL用户变量

1.1 用户变量

1.1.1 用户变量定义

MySQL用户变量:基于会话变量实现的, 可以暂存值, 并传递给同一连接里的下一条sql使用的变量.当客户端连接退出时,变量会被释放

用户变量:以"@"开始,形式为"@变量名"

注意:用户变量跟mysql客户端是绑定的,设置的变量,只对当前用户使用的客户端生效。也叫会话变量

1.1.2 用户变量操作

赋值:(可以使用set或select)

set @test=1; -- 或者 set @test:=1;-- 或者select@test,@tt:=2;

查看变量的值:

select@tt;

注意:如果使用没有初始化的变量,其值是NULL。使用set赋值时,使用的是“=”或者":=",使用select赋值时必须使用的是“:="

1.2 系统变量

系统变量又分为全局变量会话变量

1.2.1 系统变量定义

MySQL可以访问许多系统变量。当服务器运行时许多变量可以动态更改。这样通常允许修改服务器操作而不需要停止并重启服务器

当服务器启动时,它将所有全局变量初始化为默认值。这些默认值可以在选项文件中或在命令行中指定的选项进行更改。

全局变量:在MYSQL启动的时候由服务器自动将它们初始化为默认值,这些默认值可以通过更改my.ini这个文件来更改,服务器启动后,通过连接服务器并执行SET GLOBAL var_name语句,可以动态更改这些全局变量。要想更改全局变量,必须具有SUPER权限。会话变量:会话变量在每次建立一个新的连接的时候,由MYSQL来初始化。MYSQL会将当前所有全局变量的值复制一份。来做为会话变量。(也就是说,如果在建立会话以后,没有手动更改过会话变量与全局变量的值,那所有这些变量的值都是一样的。)全局变量和会话变量区别:全局变量与会话变量的区别就在于,对全局变量的修改会影响到整个服务器,但是对会话变量的修改,只会影响到当前的会话(也就是当前的数据库连接)

以"@@"开始,形式为"@@变量名(如果不带global参数,则默认是查询会话级别的参数)"或者"@@global.变量名"或者"@@session.变量名"

1.2.2 系统全局变量

可以通过@@global.变量名来操作系统变量,如下:

-- 赋值SET GLOBAL sort_buffer_size=value;SET @@global.sort_buffer_size=value;-- 查看SELECT @@global.event_scheduler;SELECT @@event_scheduler;

1.2.3 系统会话变量

可以通过@@session.变量名来操作系统变量,如下:

查看会话变量:SHOW SESSION VARIABLES;会话变量:SET SESSION default_storage_engine = MyISAM;SET LOCAL default_storage_engine = MyISAM;SET default_storage_engine = MyISAM;SET @@SESSION.default_storage_engine = MyISAM;SET @@LOCAL.default_storage_engine = MyISAM;SET @@default_storage_engine = MyISAM;

1.3 局部变量

1.3.1 局部变量定义

declare语句专门用于定义局部变量。作用范围在begin到end语句块之间。在该语句块里设置的变量成为局部变量。

begindeclare test int;

1.3.2 赋值

set语句进行赋值

set i=500;-- 或者set i :=500;

综述:为了和oracle赋值相匹配,尽量都使用":="来赋值

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。