数据库中的变量问题
1.变量的总体分类
(1).变量总体可以分为系统变量和用户自定义变量
(2).系统变量可以分为全局系统变量(GLOBAL)和会话系统变量(SESSION)
全局系统变量在每次计算机与数据库重连(即重启Mysql服务)时会重置
会话系统变量在新创建一个会话时就会进行重置
2.系统变量
(1).系统变量的查看
1 #1.2 查看系统变量 2 #查询所有的全局系统变量 3 SHOW GLOBAL VARIABLES; #617 4 #查询所有的会话系统变量 5 SHOW SESSION VARIABLES; #640 6 7 SHOW VARIABLES; #默认查询的是会话系统变量 8 9 #查询部分系统变量 10 11 SHOW GLOBAL VARIABLES LIKE 'admin_%'; 12 13 SHOW VARIABLES LIKE 'character_%'; 14 15 SELECT @@character_set_client; #先查询会话系统变量,再查询全局系统变量(查询名为chracter_set_client的系统变量)
在涉及到可能查询多个时使用关键词'show',而只查询单个时,使用关键词'select'
(2).系统变量的修改
1 #会话系统变量: 2 #方式1: 3 SET @@session.character_set_client = 'gbk'; 4 #方式2: 5 SET SESSION character_set_client = 'gbk'; 6 7 #针对于当前会话是有效的,一旦结束会话,重新建立起新的会话,就失效了。
使用关键词'SET'
总结:全局系统变量的声明为 @@global.变量名 或者为 GLOBAL 变量名
会话系统变量的声明为 @@session.变量名 或者为 SESSION 变量名
3.自定义用户变量
自定义变量的声明和定义:
1 #测试: 2 #方式1: 3 SET @m1 = 1; 4 SET @m2 := 2; 5 SET @sum := @m1 + @m2;#既可以用'=',也可以用':=' 6 7 SELECT @sum; 8 9 #方式2: 10 SELECT @count := COUNT(*) FROM employees;#采用该方式不能用=,只能用:=
采用方式2如果使用'=',系统不会报错,但是得到的值存在错误。
1 #方式3 2 SELECT AVG(salary) INTO @avg_sal FROM employees; 3 4 SELECT @avg_sal;
在函数中使用变量时常常使用到方式3
补充:所有出现自定义用户变量的位置,其格式均为 @’变量名‘
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)