数据库(MySQL)---变量1(系统变量)--尚硅谷笔记

1.变量的分类

  mysql数据库中,变量分为系统变量以及用户自定义变量。这里来介绍系统变量。

2.系统变量的简介

  系统变量的变量为系统定义不是由用户定义,属于服务器层面。生成MySQL服务实例期间,MySQL将为MySQL服务器内存中的系统变量赋值,这些系统变量定义了当前MySQL服务实例的属性、特征。

  系统变量分为全局系统变量(需要添加global关键字)以及会话系统变量(需要添加session关键字),有时也把全局系统变量简称为全局变量,把会话系统变量称为local变量。静态变量(在MySQL服务器实例运行期间它们的值不能用set动态修改)属于特殊的全局系统变量

3.全局系统变量和会话系统变量

  1.全局系统变量针对与所有会话连接有效,但不能跨重启。

  2.会话系统变量仅针对与当前对话有效。会话期间,当前会话对某个会话系统变量值的修改,不会影响其他对话同一个会话系统变量的值。

  3.会话1对某个全局变量的修改会导致会话2中同一个全局系统变量值的修改。

  4.MySQL中有些系统变量只能是全局的,有些系统变量作用域既可以是全局又可以是会话。

4.MySQL语句对变量的应用

1.查看系统变量

show global variables;//查看全局系统变量
show session variables;//查看会话系统变量
show variables//默认查看会话系统变量

2.查询部分系统变量(增加筛选条件)

show global variables like 'admin_%'://查询全局变量中以admin_开头的
show (session) variables like 'character_%';//查询会话系统变量中以character_开头的

3.查询指定系统变量

MySQL中的系统变量以两个@开头,'@@global'用于标记全局系统变量,'@@session'用于标记会话系统变量,'@@'首先标记会话系统变量,如果会话系统变量不存在,则标记全局系统变量。

select @@global.max_connections;//查看max_connections的全局系统变量
select @@global.character_set_client;//character_set_client即为全局系统变量也为会话系统变量
select @@session.character_set_client;

4.修改系统变量的值

  方式一:修改MySQL配置文件(通常是在my.ini里修改),继而修改MySQL系统变量的值(该方法需要重启MySQL服务)(重启服务后所有系统变量修改值都任然有效)

  方式二:在MySQL服务运行期间,使用'set'重新设置系统变量的值。(只针对于当前数据库实例,重启后失效)

//为某个全局系统变量赋值(只针对于当前数据库实例,重启后失效)
set @@global.变量名=变量值;
set global 变量名=变量值;
eg.set @@global.max_connections=161;

//为某个会话系统变量赋值(只针对于当前会话,新建会话后,在新建会话中将失效)
set @@session.变量名=变量值;
set session 变量名=变量值;

5.小结

  1.系统变量分为全局系统变量和会话系统变量,全局系统变量可以在任何程序随时调用,会话系统变量通常是新建一个查询编辑器(会话)后在编辑器里使用,即只对当前连接会话有效,有些变量既可以是全局系统变量也可以是会话系统变量。

  2.如果在本编辑器中修改一个会话系统变量,在新建其他编辑器后修改将会失效。

  3.但是如果在编辑器中修改全局系统变量,会导致新建的其他编辑器中全局系统变量的值改变,如果想恢复再全部默认值,选择重启。

  4.如果不想每次都在编辑器中修改,则可以直接修改配置文件。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值