查看全局系统变量:
SHOW GLOBAL VARIABLES

查看会话系统变量:
SHOW SESSION VATIABLES;

SHOW VARIABLES;
默认查询的是会话系统变量
查询部分系统变量:
SHOW GLOBAL VARIABLES LIKE 'admin_%';
SHOW VARIABLES LIKE 'character_%';
查看指定系统变量:
MYSQL中的系统变量以两个@开头,其中“@@global”仅用于标记全局系统变量,其他同理。
SELECT @@global.max_connections;

修改系统变量的值
有些时候,数据库管理员需要修改系统变量的默认值,以便修改当前会话或者MYSQL服务实例的属性,特征,具体方法:
方式一:修改MySQL配置文件,继而修改MySQL系统变量的值(该方法需要重启MySQL服务)

修改配置文件重启mysql代价太大
方式二:在MySQL服务运行期间,使用“set”命令重新设置系统变量的值
两种方式:
SET @@global.max_connections = 161;
SET GLOBAL max_connections = 171;

针对于当前的数据库实例是有效的,一旦重启mysql服务就失效了
重启mysql后又恢复了

修改会话系统变量:
方式一:
SET @@session.character_set_client='gbk';
SET SESSION character_set_client='gbk';
两个连接相当于两个会话,修改1其中一个会话系统变量不会影响另一个会话系统变量

针对于当前会话是有效的,一旦结束会话,重新建立起新的会话就会失效了
MySQL的用户变量以一个@为开头,根据作用范围不同又分为会话用户变量和局部变量。
会话用户变量:







局部变量:






1.声明局部变量,并分别赋值为employees表中employee_ id为102 的last_ name和salary



2.声明两个变量,求和并打印(分别使用会话用户变量、局部变量的方式实现)




对比会话用户变量与局部变量:

在MySQL数据库中,全局变量可以通过SET GLOBAL语句来设置。例如,设置服务器语句超时的限制,可以通过设
置系统变量max_execution _time来实现:
SET GLOBAL MAX_EXECUTION_TIME=2000;
使用SET GLOBAL语句设置的变量值只会临时生效。数据库重启后,服务器又会从MySQL配置文件中读取变量的默
认值。
MySQL 8.0版本新增了SET PERSIST 命令。例如,设置服务器的最大连接数为1000:
SET PERSIST global max_connections = 1000;
MySQL会将该命令的配置保存到数据目录下的mysqld-auto.cnf文件中,下次启动时会读取该文件,用其中的配置来覆盖默认的配置文件。




定义处理程序:
可以为SQL执行过程中发生的某种类型的错误定义特殊的处理程序。定义处理程序时,使用DECLARE语句的语法:
DECLARE 处理方式 HANDLER FOR 错误类型 处理语句









游标必须在声明处理程序之前被声明,并且变量和条件还必须在声明游标或处理程序之前被声明。
如果我们想要使用游标,一般需要经历四个步骤。不同的DBMS中,使用游标的语法可能略有不同。
DECLARE cursor_name CURSOR FOR select_statement;OPEN cursor_nameFECTH cursor_name INTO var_name [,var_name]...CLOSE cursor_name



