MySQL系统变量 会话变量,用户变量

在这里插入图片描述

系统变量 分类

全局系统变量需要添加 global 关键字,有时把全局系统变量简称 全局变量
会话系统变量需要添加 session 关键字,有时也把会话系统变量称为 local 变量 局部变量
如果不写(global、session)默认会话级别。
静态变量在mysql服务实例运行期间他们的值不能使用set 动态修改,属于特殊的全局系统变量

查看系统变量
## 查看所有全局变量
show global variables;
## 查看所有会话变量
show session variables;
# 或   没指定global   、session   默认是 session
show variables;    

# 查看满足条件的部分系统变量
# show global variables like ’%b标识符%‘
show global variables like ’character%‘

# 查看满足条件的部分会话变量
show session variables like '%标识符%'
查看指定系统变量

sql server 和 mySQL 系统变量以“@@”开头的,
“@@global ”仅用于标记全局系统变量
“@@session“ 仅用于标记会话系统变量
“@@“ 首先标记会话系统变量,如果会话系统变量不存在,则标记全局系统变量

# 查看指定的系统变量的值
select @@global.变量名;

# 查看指定的会话变量的值

select @@session.变量名
# 或
select @@变量名

修改系统变量的值

有些时候,数据库管理员需要修改系统变量的默认值,以便修改当前会话或者Mysql服务实例的属性、特征

修改方式如下:
方式1:
修改Mysql.ini 配置文件,继而修改mysql系统变量的值(该方便需要重新MySQL服务 才能生效)
方式2:
在mySQL 服务运行期间,使用 set 命令 重新设置系统

# 为某个系统变量赋值
# 方式1
set @@global.变量名=变量值;
# 方式2
set global 变量名=变量值;
## 全局变量   针对当前数据库实例是有效的,一旦重启mysql服务,  就生效了,会加载my.ini  配置的变量

# 为某个会话变量赋值
# 方式1
set @@session.变量名=变量值;
#方式2
set session 变量名=变量值

## local变量  针对当前会话有效,其它会话是无效的,


用户变量

用户自己定义的变量,就是用户变量, 是一个“@”开头。
根据范围分:

  1. 会话用户变量 : 作用域和会话变量一样,只对当前 会话有效(当前连接)
  2. 局部变量 :只在begin 和 end 语句块中有效。局部变量只能在 存储过程和函数中使用
会话用户变量

一、变量的定义

# 方式1    “=” 或 “:=”
set @变量名 = 值;
set @变量名 := 值

# 方式2   “:=”  或 INTO 关键字
select  @变量名 := 表达式  [ from  等子句]
select 表达式  into @变量名  [ from  等子句]

select @size=100;
select 100 into @size;

select @cnt := count(*) from  students ;
select count(*)  into @cnt from  students;

在这里插入图片描述

二、查看用户变量的值 (查看、比较、运算等)

select @变量名

select @cnt=1

select @cnt

局部变量

定义: 可以使用 declare 语句定义 一个局部变量
作用域: 仅仅在定义它的 begin 。。。end 中有效
位置: 只能放在 begin。。。。end ,而且只能放在第一句
在这里插入图片描述
一、定义变量
declare 变量名 类型 [defaut 值]; —如果没有指定default 子句,初始值为 null

declare my_1 int default 100

二、变量赋值

# 方式1  一般用于赋简单的值
set 变量名=值;
set 变量名:=值;

# 方式2  一般用于赋表中的字段值
select  字段名或表达式  into  变量名  from  子句;

三、使用变量 (查看、比较、运算等)

select 局部变量名

会话用户变量 VS 局部变量

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/82648.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

在云服务器上安装Jenkins

说明:Jenkins是一个部署项目的平台,通过Jenkins可以省去从项目开发–>部署项目之间的所有流程,做到代码提交即上线。本文介绍在云服务CentOS上安装Jenkins。 前提 安装Jenkins之前,先要在云服务上安装JDK、Maven、Git&#x…

07_缓存预热缓存雪崩缓存击穿缓存穿透

缓存预热&缓存雪崩&缓存击穿&缓存穿透 一、缓存预热 提前将数据从数据库同步到redis。 在程序启动的时候,直接将数据刷新到redis懒加载,用户访问的时候,第一次查询数据库,然后将数据写入redis 二、缓存雪崩 发生情…

Docker搭建LNMP运行Wordpress平台

一、项目1.1 项目环境1.2 服务器环境1.3 任务需求 二、Linux 系统基础镜像三、Nginx1、建立工作目录2、编写 Dockerfile 脚本3、准备 nginx.conf 配置文件4、生成镜像5、创建自定义网络6、启动镜像容器7、验证 nginx 四、Mysql1、建立工作目录2、编写 Dockerfile3、准备 my.cnf…

Azure虚拟网络对等互连

什么是Azure虚拟网络对等互联 Azure虚拟网络对等互联(Azure Virtual Network peering)是一种连接两个虚拟网络的方法,使得这两个虚拟网络能够在同一地理区域内进行通信。它通过私有IP地址在虚拟网络之间建立网络连接,不论是在同一…

信安通用基础知识

文章目录 密码学经典误区PGP优良保密协议信安经典其它安全手段XSS与CSRF cross site request forgeryCSRF的利用逻辑CSRF示例CSRF防范检查Referer字段添加校验token XSS cross site scripting common weakness enumeration常见密码api误用(摘自毕设参考文献&#xf…

Unity VR:XR Interaction Toolkit 输入系统(Input System):获取手柄的输入

文章目录 📕教程说明📕Input System 和 XR Input Subsystem(推荐 Input System)📕Input Action Asset⭐Actions Maps⭐Actions⭐Action Properties🔍Action Type (Value, Button, Pass through) ⭐Binding …

Error creating bean with name ‘esUtils‘ defined in file

报错异常: 背景: esUtils在common服务中、启动media服务时候、报这个异常、后排查esUtils在启动时候发生异常引起的、在相关bean中加入try{}catch{}即可解决问题 String[] split url.split(","); HttpHost[] httpHosts new HttpHost[split.…

字符设备驱动实例(PWM和RTC)

目录 五、PWM 六、RTC 五、PWM PWM(Pulse Width Modulation,脉宽调制器),顾名思义就是一个输出脉冲宽度可以调整的硬件器件,其实它不仅脉冲宽度可调,频率也可以调整。它的核心部件是一个硬件定时器,其工作原理可以用…

微信小程序:函数节流与函数防抖

目录 问题引入: 定义 解决方案:函数节流 一、案例举例 1.页面展示 2.search.wxml标签展示 3.search.js展示 4.结果展示 二、函数节流解决问题 1.函数 2.实例应用 三、函数防抖解决问题 1.函数 2.原理 3.应用场景 4.应用实例 总结 问题引入…

华为云零代码新手教学-体验通过Astro Zero快速搭建微信小程序

您将会学到 您将学会如何基于Astro零代码能力,DIY开发,完成问卷、投票、信息收集、流程处理等工作,还能够在线筛选、分析数据。实现一站式快速开发个性化应用,体验轻松拖拽开发的乐趣。 您需要什么 环境准备 注册华为云账号、实…

unity之Input.GetKeyDown与Input.GetKey区别

文章目录 Input.GetKeyDown与Input.GetKey区别 Input.GetKeyDown与Input.GetKey区别 Input.GetKey 和 Input.GetKeyDown 是 Unity 中用于检测按键状态的两个不同函数。它们之间的区别在于何时触发。 Input.GetKey(KeyCode key): 这个函数会在用户按住指定的键时触发&#xff0…

深度学习|自监督学习、MAE学习策略、消融实验

前言:最近在阅读论文,发现太多机器学习的知识不懂,把最近看的一篇论文有关的知识点汇总了一下。 自监督学习、MAE学习策略、消融实验 自监督学习MAE学习策略消融实验 自监督学习 Pretrain-Finetune(预训练精调)模式&…

Jmeter生成可视化的HTML测试报告

Jmeter也是可以生成测试报告的。 性能测试工具Jmeter由于其体积小、使用方便、学习成本低等原因,在现在的性能测试过程中,使用率越来越高,但其本身也有一定的缺点,比如提供的测试结果可视化做的很一般。 不过从3.0版本开始&…

初阶c语言:实战项目三子棋

前言 大家已经和博主学习有一段时间了,今天讲一个有趣的实战项目——三子棋 目录 前言 制作菜单 构建游戏选择框架 实现游戏功能 模块化编程 初始化棋盘 打印棋盘 玩家下棋 电脑下棋 时间戳:推荐一篇 C语言生成随机数的方法_c语言随机数_杯浅…

数据库结构差异对比工具

简介 前几年写了一个数据库对比工具,但是由于实现方式的原因,数据库支持有限,所以重新设计了一下,便于支持多种数据库,并且更新了UI。 新版地址:https://gitee.com/xgpxg/db-diff 旧版地址:h…

ARM 配置晶振频率

文章目录 前言串口乱码问题定位内核修改晶振频率uboot 修改晶振频率番外篇 前言 上篇文章《ARM DIY 硬件调试》介绍了 DIY ARM 板的基础硬件焊接,包括电源、SOC、SD 卡座等,板子已经可以跑起来了。 但是发现串口乱码,今天就来解决串口乱码问…

OpenCV图片校正

OpenCV图片校正 背景几种校正方法1.傅里叶变换 霍夫变换 直线 角度 旋转3.四点透视 角度 旋转4.检测矩形轮廓 角度 旋转参考 背景 遇到偏的图片想要校正成水平或者垂直的。 几种校正方法 对于倾斜的图片通过矫正可以得到水平的图片。一般有如下几种基于opencv的组合方…

【前端】vscode javascript 代码片段失效问题解决

1. 文件--首选项--用户代码片段-vue.json : 添加 // { // // Place your global snippets here. Each snippet is defined under a snippet name and has a scope, prefix, body and // // description. Add comma separated ids of the languages where the snippet is app…

C语言:分支语句和循环语句(超详解)

目录 ​编辑 什么是语句? 分支语句(选择结构) if语句: 应该注意的是: switch语句: 运用练习: 循环语句 while循环: for循环: break和continue在for循环中&…

Linux(入门篇)

Linux(入门篇) Linux概述Linux是什么Linux的诞生Linux和Unix的渊源GNU/LinuxLinux的发行版Linux VS Windows Linux概述 Linux是什么 Linux是一个操作系统(OS) Linux的诞生 作者:李纳斯托瓦兹(git也是他开发的😂&am…