
在刚学变量的时候,我们需要明确它的使用范围和类型。我们上篇讲的两种变量都属于自定义变量的范围,为了方便区分,小编把另外的两种系统变量放在本篇进行单独讲解。会话变量和和全局变量作为系统变量中的两种类型,在应用范围上是不同的,接下来我们会通过代码示例为大家进行区别的展示。
mysql里面的变量你可以和java中的变量进行对比理解。主要分为两种:系统变量和自定义变量。自定义变量是重点。
系统变量那肯定就是mysql数据库为我们提供的,再细化的话又可以分为两种:会话变量和全局变量。
会话变量
会话变量是由系统提供的,只在当前会话(连接)中有效。
语法: @@session.val_name
# 查看所有会话变量 show session variables; # 查看指定的会话变量 select @@session.val_name; # 修改指定的会话变量 set @@session.val_name = 0;
这里我获取了一下所有的会话变量,大概有500条会话变量的记录。等我们深入学习MySQL后,了解了各个会话变量值的作用,可以根据需求和场景来修改会话变量值。
delimiter // create procedure val_session() begin # 查看会话变量 show session variables; end // call val_session() //
全局变量
全局变量由系统提供,整个MySQL服务器内有效。
语法: @@global.val_name
# 查看全局变量中变量名有char的记录 show global variables like '%char%' // # 查看全局变量character_set_client的值 select @@global.character_set_client //
通过整篇的学习我们知道,全局变量的应用范围是整个mysql,会话变量时针对于当前会话的。小伙伴们在使用的时候要牢记二者的区别,不要把两种范围记混了。