数据库中的变量问题

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

 

补充:所有出现自定义用户变量的位置,其格式均为 @’变量名‘

posted @   jue1e0  阅读(71)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示