Linux学习-MySQL变量学习
变量
- 系统变量
- 全局系统变量(需添加global关键字)
- 会话系统变量(需添加session关键字)
- 用户自定义变量
系统变量
系统变量分为全局系统变量和会话系统变量,有时也将全局系统变量称为全局变量,会话系统变量称为local变量,如果不指名,默认为会话级别,静态变量属于特殊的全局系统变量。每一个MySQL客户机成功连接MySQL服务器后,都会产生与之对应的会话,会话期间,MySQL服务实例会在MySQL服务器内存中生成与该会话对应的会话系统变量,这些会话系统变量的初使值是全局系统变量值的复制。
- 全局系统变量针对于所有会话(连接)有效,但不能重启
- 会话系统变量仅针对当前会话(连接)有效,会话期间,当前会话对某个会话系统变量值的修改,不会影响其他会话同一个会话系统变量的值
- 会话1对某全局系统变量值的修改会导致会话2中同一个全局系统变量值的修改
注:在MySQL中有些系统变量只能是全局的,例如max_connections用于限制服务器的最大连接数;有些系统变量作用域可以是全局又可以是会话,如character_set_client用于设置客户端的字符集;有些系统变量的作用域只能是当前会话,例如pseudo_thread_id用于标记当前会话的MySQL连接ID。
#查看全局系统变量
mysql> SHOW GLOBAL VARIABLES;
#查看所有会话变量(默认)
mysql> SHOW SESSION VARIABLES;或SHOW VARIABLES;
#查看部分系统变量
mysql> SHOW GLOBAL VARIABLES LIKE 'admin_%';
+------------------------+---------+
| Variable_name | Value |
+------------------------+---------+
| admin_address | |
| admin_port | 33062 |
| admin_ssl_ca | |
| admin_ssl_capath | |
| admin_ssl_cert | |
| admin_ssl_cipher | |
| admin_ssl_crl | |
| admin_ssl_crlpath | |
| admin_ssl_key | |
| admin_tls_ciphersuites | |
| admin_tls_version | TLSv1.2 |
+------------------------+---------+
11 rows in set (0.01 sec)
#查询指定系统变量
MySQL中的系统变量以两个"@"开头,其中@@global仅用于标识全局系统变量,"@@session"仅用于标记会话系统变量,"@@"首先标记会话系统变量,如会话系统变量不存在,则标记全局系统变量。
mysql> select @@global.max_connections;
+--------------------------+
| @@global.max_connections |
+--------------------------+
| 151 |
+--------------------------+
1 row in set (0.00 sec)
mysql> select @@session.character_set_client;
+--------------------------------+
| @@session.character_set_client |
+--------------------------------+
| utf8mb4 |
+--------------------------------+
1 row in set (0.00 sec)
mysql> select @@session.pseudo_thread_id;
+----------------------------+
| @@session.pseudo_thread_id |
+----------------------------+
| 8 |
+----------------------------+
1 row in set (0.00 sec)
#修改系统变量的值
#1.修改MySQL配置文件,修改完成后需重启MySQL服务器
#2.在MySQL运行期间,使用SET命令重新设置系统变量的值
#为某个全局系统变量赋值(使用SET设置的系统变量一旦重启服务器将失效)
SET @@global.变量名=变量值
SET GLOBAL 变量名=变量值
mysql> select @@global.max_connections;
+--------------------------+
| @@global.max_connections |
+--------------------------+
| 151 |
+--------------------------+
1 row in set (0.00 sec)mysql> set @@global.max_connections=161;
Query OK, 0 rows affected (0.00 sec)mysql> select @@global.max_connections;
+--------------------------+
| @@global.max_connections |
+--------------------------+
| 161 |
+--------------------------+
1 row in set (0.00 sec)#为某个会话变量赋值(针对当前会话有效,一旦会话结束,会话变量失效)
SET @@session.character_set_client='gbk'
SET session character_set_client='gbk'
用户变量
用户变量是用户自已定义的,作为MySQL编码规范,MySQL中的用户变量以一个"@"开头,根据作用范围不同,分为会话用户变量和局部变量。
- 会话用户变量:作用域和会话变量一样,只对当前连接有效
- 局部变量:只在BEGIN和END语句块中有效,局部变量只能在存储过程和函数中使用
#变量定义
#方式1:"="或":="
SET @用户变量 = 值;
SET @用户变量 := 值;
#方式2:":="或INTO关键字
SELECT @用户变量:=表达式[FROM 等子句];mysql> SET @m1 = 1;
Query OK, 0 rows affected (0.01 sec)mysql> SET @m2 := 2;
Query OK, 0 rows affected (0.00 sec)mysql> SET @sum := @m1+@m2;
Query OK, 0 rows affected (0.00 sec)mysql> select @sum;
+------+
| @sum |
+------+
| 3 |
+------+
1 row in set (0.00 sec)mysql> SELECT @count :=count(*) from employees;
+-------------------+
| @count :=count(*) |
+-------------------+
| 106 |
+-------------------+
1 row in set, 1 warning (0.00 sec)
mysql> select @count;
+--------+
| @count |
+--------+
| 106 |
+--------+
1 row in set (0.00 sec)
mysql> select avg(salary) into @avg_sal from employees;
Query OK, 1 row affected (0.00 sec)mysql> select @avg_sal;
+--------------------+
| @avg_sal |
+--------------------+
| 6464.1509433962265 |
+--------------------+
1 row in set (0.00 sec)
#局部变量-可以使用DECLARE语句定义一个局部变量,作用域(仅在定义它的BEGIN...END中有效),位置(只能放在BEGIN...END中,而且只能放在第一句)
BEGIN#声明局部变量DECLARE 变量名1 变量数据类型[DEFAULT 变量默认值]DECLARE 变量名2,变量名3...变量数据类型[DEFAULT 变量默认值]#为局部变量赋值SET 变量名1 [:]=值;SELECT 值 INTO 变量名2 [FROM子句]#查看局部变量的值SELECT 变量1,变量2,变量3;
END#
mysql> DELIMITER $
mysql> CREATE PROCEDURE test_var() BEGIN DECLARE a INT DEFAULT 0;DECLARE bINT; DECLARE emp_name VARCHAR(25); SET a = 1; SET b :=2; SELECT last_name INNTO emp_name FROM employees WHERE employee_id=101; SELECT a,b,emp_name; END$
Query OK, 0 rows affected (0.04 sec)
mysql> DELIMITER ;
mysql> CALL test_var();
+------+------+----------+
| a | b | emp_name |
+------+------+----------+
| 1 | 2 | Kochhar |
+------+------+----------+
1 row in set (0.00 sec)Query OK, 0 rows affected (0.00 sec)
Linux学习-MySQL变量学习相关推荐
- linux mysql更改生效_linux下面MySQL变量修改及生效
今天在访问mysql项目的时候突然报500错误,没有找到连接,因此想到mysql的连接时间. mysql> show global variables; 主要就是连接时间是28800(8小时), ...
- mysql存储过程变量定义_存储过程中MySQL变量定义和赋值
MySQL变量定义和赋值是我们经常会遇到的问题,下面就为您接受如何在存储过程中MySQL变量定义和赋值,希望对您学习MySQL变量定义方面能有所启迪. 一.MySQL变量的定义 mysql变量定义用d ...
- linux修改mysql字符集6,linux下mysql字符集编码问题的修改
安装完的MySQL的默认字符集为 latin1 ,为了要将其字符集改为用户所需要的(比如utf8),就必须改其相关的配置文件:由于linux下MySQL的默认安装目录分布在不同的文件下:不像windo ...
- linux数据库创建score表,MySQL数据库学习笔记
MySQL数据库学习笔记phpma (实验环境:Redhat9.0,MySQL3.23.54) 纲要: 一,连接MySQL phpma 二,MySQL管理与授权 三,数据库简单操作 四, 数据库备份 ...
- linux使用读mysql脚本,【mysql学习】linux安装mysql,使用install脚本方式 (二)
[mysql学习]linux安装mysql,使用install脚本方式 (二) 发布时间:2020-04-06 20:51:12 来源:51CTO 阅读:1092 作者:浮尔魔司 本文介绍Linux下 ...
- python、oracle、linux、mysql、大数据及其它内容学习导航站
本导航站汇聚本博主所有python.oracle.linux.mysql.大数据及其它学习原创内容,励志将50篇归为一类,该导航站方便大家收藏查看. 一.python python-利用python写 ...
- Linux安装mysql学习
Linux下安装mysql-5.7.24 下面记录了在Linux(Centos 7)环境下安装Mysql的完整过程,实操记录; 安装版本为mysql-5.7.24,对于5.7.24之后的版本,不适用此 ...
- python、Linux、MySQL学习笔记
git操作: 1.git init [project-name] 2.git clone url 克隆文件 3.git status 查看目前状态 4.git add . 添加 5.git com ...
- MySQL服务器学习笔记!(二) ——数据库各项操作
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://foreveryan.blog.51cto.com/3508502/657640 ...
最新文章
- 如何重装计算机操作系统,自己如何重装笔记本电脑操作系统呢?
- jQuery的链Chaining
- 我现在编程方面的特别大的问题
- 工作322:uni-扩展运算符实现拼接合并操作
- 面试问题汇总 精选 分析 解答 职业规划 part 1
- 世界首富马斯克吟《七步诗》,中外互联网世界究竟发生了什么?
- 初识python你应该知道的6个知识点
- C# .Net中的类型转换(3)
- 2022,火山引擎的云上第一“子”,为何是视频?
- SONiC:为Microsoft全球云提供支持的网络交换机软件
- c# iot .net6 树莓派+RS485串口工业级光照度传感器 代码实例
- Excel删除重复项,不保留重复项数据
- nvm在c语言是什么意思的缩写,nvm是什么意思的缩写
- 点在多边形内算法,JS判断一个点是否在一个复杂多边形的内部
- 用c语言做记忆测试小游戏,用C语言实现简单小游戏
- L1 Cache(一级缓存)
- EasyWord的使用——POI操作Word的工具
- 日常英语:Job interview
- Nonlinear Schrodinger equations on the torus
- 自动化专业学计算机技术,自动化专业学什么?大学自动化专业主要学什么
热门文章
- openstack-mitaka(二) 基于vmware的搭建
- Ceph Luminous 12.2.11 安装 nfs-ganesha
- PDF文档如何用关键字精确查找?
- Excel技巧--数据不能按照1-100来排列
- 微信小程序反编译的应对方法
- android调用相机分辨率,Android菜鸟笔记-获取摄像头像素值
- linux查询历史登入系统的主机名称或IP地址
- HDU-6194 string string string
- 斐讯路由器设置linux,Windows10系统怎么给斐讯K3路由器开启Telnet
- 常见的几种网络Hack方式