mysqlb系统变量的查看、修改,用户自定义变量的使用

1 变量的概念

在MySQL数据库的存储过程和函数中,可以使用变量来存储查询或计算的中间结果数据,或者输出最终的结果数据。
在MySQL数据库中,变量分为系统变量(全局系统变量与会话系统变量)以及用户自定义变量

2 系统变量

2.1 变量的查看

#查看系统变量
SHOW GLOBAL VARIABLES;#全局系统变量
SHOW SESSION VARIABLES;#会话系统变量
SHOW VARIABLES;# 默认查询会话系统变量

#查看部分系统变量
SHOW GLOBAL VARIABLES LIKE 'admin_%';
SHOW VARIABLES LIKE 'character_%';

#查看指定的全局系统变量
SELECT @@global.max_connections;
#查看指定的会话系统变量
 @@session.character_set_client;
#@@+变量名,会先去会话系统变量中找,找不到再去局系统变量找
SELECT @@max_connections;

2.2 变量的修改

#修改系统变量
#全局系统变量:对于当前数据库实例是有效的,一旦重启mysql服务就失效了
#方式一:
SET @@global.max_connections = 152;
#方式二:
SET GLOBAL max_connections = 161;

#会话系统变量:只针对当前会话有效,关闭会话会失效
SET @@session.character_set_client = 'gbk';
SET SESSION character_set_client = 'utf8';

3 用户自定义变量

3.1 概念

用户变量是用户自己定义的,作为MySQL编码规范,MySQL中的用户变量以一个“@”开头。根据作用范围不同,又分为会话用户变量局部变量

  • 会话用户变量:作用域和会话变量一样,只对当前连接会话有效。
  • 局部变量:只在BEGIN和END语句块中有效。局部变量只能在存储过程和函数中使用。

3.2 会话用户变量

#用户自定义变量(会话期间有效)
#方式一
SET @m1 = 1;
SET @m2 := 2;#=与:=作用一致
SET @sum = @m1 + @m2; 
SELECT @sum; #查看变量内容

#方式二
SELECT @count := COUNT(*) FROM employees;
SELECT @count;

#方式三
SELECT AVG(salary) INTO @avg_salary FROM employees;
SELECT @avg_salary;

3.3 局部变量

3.3.1 注意点

  • 必须使用declare声明
  • 声明并使用在begin…end中(存储过程或函数中)
  • declare声明的局部变量必须声明在begin的首行位置

3.3.2 声明格式

DECLARE 变量名 类型 [default];#如果没有DEFAULT子句,初始值为NULL

3.3.3 代码演示

#局部变量
CREATE PROCEDURE test_var () 
BEGIN
#定义局部变量(必须在begin的首行)
	DECLARE
		a INT DEFAULT 0;
	DECLARE
		b INT;
	DECLARE
		d,
		c INT DEFAULT 0;
	DECLARE
		emp_name VARCHAR ( 25 );
		
	#赋值
	SET a = 1;
	SET b = 2;
	SET d = 3;
	SET c = 4;
	SELECT
		last_name INTO emp_name 
	FROM
		employees 
	WHERE
		employee_id = 101;
	
	# 使用
	SELECT
		a,
		b,
		c,
		d,
		emp_name;	
END;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值