详细分析Mysql临时变量的基本知识(附Demo)

目录

  • 前言
  • 1. 用户变量
  • 2. 会话变量

前言

临时变量主要分为用户变量和会话变量

1. 用户变量

用户变量是特定于会话的,在单个会话内可以在多个语句中共享

  • @ 符号开头
  • 在 SQL 语句中使用 SET 语句或直接在查询中赋值

声明和赋值

SET @var_name = value;
-- 或者
SELECT @var_name := value;

使用

SELECT @var_name;

注意事项如下:

  • 在声明时不需要指定数据类型,MySQL 会自动根据赋值的内容推断类型
  • 在 SQL 语句中区分大小写
  • 声明用户变量时没有赋值,它们的值将为 NULL
  • 在查询中,用户变量会根据查询的执行顺序进行赋值和计算,容易引起不期望的结果,需要小心使用

简单赋值:

在这里插入图片描述
在查询中使用用户变量:

-- 创建示例表
CREATE TABLE sales (id INT AUTO_INCREMENT PRIMARY KEY,amount DECIMAL(10, 2)
);-- 插入示例数据
INSERT INTO sales (amount) VALUES (100.00), (200.00), (300.00);-- 使用用户变量计算累计总和
SET @total = 0;
SELECT id, amount, @total := @total + amount AS cumulative_total
FROM sales;

截图如下:

在这里插入图片描述

2. 会话变量

会话变量也称为系统变量,整个会话期间保持有效

不过可以是全局的或会话特定的

设置会话变量SET SESSION var_name = value;
设置全局变量SET GLOBAL var_name = value;
查看会话变量SHOW VARIABLES LIKE 'var_name';

注意事项:

  • 会话变量仅在当前会话中有效,而全局变量在所有会话中有效,但必须有足够的权限来设置全局变量
  • 设置会话变量时,应该确保其值是合理的,以避免对数据库性能产生负面影响
  • 一些会话变量的更改可能会立即生效,而另一些可能需要重新启动服务器才能生效

示例 1:设置并查看会话变量

-- 设置会话变量
SET SESSION sql_mode = 'STRICT_TRANS_TABLES';-- 查看会话变量
SHOW VARIABLES LIKE 'sql_mode';

截图如下:

在这里插入图片描述

示例 2:设置并查看全局变量

-- 设置全局变量
SET GLOBAL max_connections = 200;-- 查看全局变量
SHOW VARIABLES LIKE 'max_connections';

截图如下:

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深耕低代码,技术赋能企业转型业务

随着信息化时代的飞速发展,企业对于数字化转型的需求日益迫切。在这个背景下,低代码技术应运而生,为企业提供了一种更加高效、灵活的业务解决方案。本文将围绕“深耕低代码,技术赋能企业转型业务”这一主题,深入探讨低…

构建Vue3项目的几种方式,如何简化setup写法

1、说明 在vue2版本中,我们使用vue-cli脚手架进行构建,而切换到Vue3之后,依然可以使用vue-cli脚手架进行构建,但是官方推荐使用vite工具进行构建,下面将介绍几种方式构建vue3项目。 2、使用vue-cli脚手架构建Vue3项目…

使用Service Worker、Web Workers进行地图渲染优化

地图的渲染涉及到大量的dom, 如果每次地图重渲染都操作dom将会照成很大的性能开销,下面总结两个方案来开发和优化离线地图,以提升地图操作的流畅性和性能: 方案一:使用Service Worker和离线缓存 利用Service Worker技…

180. 连续出现的数字

180. 连续出现的数字 题目链接:180. 连续出现的数字 代码如下: # Write your MySQL query statement below select distinct l1.num as ConsecutiveNums fromLogs as l1,Logs as l2,Logs as l3 wherel1.idl2.id-1and l2.idl3.id-1and l1.numl2.numand …

【前端面试高频手写题】

# 面试高频手写题 建议优先掌握: instanceof - 考察对原型链的理解 new - 对创建对象实例过程的理解 call/apply/bind - 对this指向的理解 手写promise - 对异步的理解手写原生ajax - 对ajax原理和http请求方式的理解,重点是get和post请求的实现 # 1…

15、数据资产评估指导意见

第一章 总则 第一条 为规范数据资产评估行为,保护资产评估当事人合法权益和公共利益,根据《资产评估基本准则》及其他相关资产评估准则,制定本指导意见。 第二条 本指导意见所称数据资产,是指特定主体合法拥有或者控制的, 能进行货币计量的,且能带来直接或者间接经济利…

在vue项目中实现单点登录

核心依赖版本,vue3.4.x,vue-router4.3.x。 由于vue项目一般都是前后端分离的,所以这里单点的跳转需要在vue中处理。 一开始考虑将单点跳转做在后端,但那样感觉又将前后端强耦合了起来,所以最终还是决定将单点认证的跳转…

excel的XLOOKUP的快速多列关联查询

我们前几章上面介绍了,根据某国产品牌官网介绍的使用&连接来进行多列关联查询,非常的慢。有没有公式可以快速进行XLOOKUP多列关联查询,我们找到了一个速度还可以的办法。 原理:有几列需要关联查询,我们就写几个XLO…

高考填报志愿,怎么分析自己适合什么专业?

高考结束后,很多考生不知道自己的分数段适合什么学校,缺乏目标感,有些专业名称很大,听起来光鲜亮丽,但是是否适合自己,学什么课程,将来就业去向,这些都是需要细致了解的。 专业选择…

matlab 异常值检测与处理——Z-score法

目录 一、算法原理1、算法概述2、主要函数3、参考文献二、代码实现三、结果展示四、相关链接本文由CSDN点云侠原创,原文链接。如果你不是在点云侠的博客中看到该文章,那么此处便是不要脸的爬虫。 一、算法原理 1、算法概述 使用Z分数法,可以找出距离平均值有多少个标准差值…

提高篇(八):扩展Processing功能:从库使用到跨平台应用

提高篇(八):扩展Processing功能:从库使用到跨平台应用 引言 Processing是一款强大的创意编程工具,广泛应用于艺术、设计和教育等领域。但其真正的魅力在于其可扩展性:你可以通过使用各种扩展库、结合其他编程语言、在不同硬件平台上应用,甚至创建自己的扩展库来丰富Pro…

第十九章 SOAP 错误处理

文章目录 第十九章 SOAP 错误处理Web 服务中的默认故障处理在 Web 服务中返回自定义 SOAP 错误 第十九章 SOAP 错误处理 本主题介绍如何处理 Web 服务和 Web 客户端内的故障。 请注意,SOAPPREFIX 参数会影响任何 SOAP 错误中使用的前缀;请参阅指定 SOA…

Python SQLAlchemy库详解

大家好,在Python生态系统中,SQLAlchemy库是一个强大的工具,为开发人员提供了便捷的方式来处理与数据库的交互。无论是开发一个小型的Web应用程序,还是构建一个大型的企业级系统,SQLAlchemy都能满足你的需求&#xff0c…

什么是shell脚本?

简介 Shell脚本,又称Shell命令稿、程序化脚本,是一种电脑程序使用的文本文件,内容由一连串的shell命令组成,经由Unix Shell直译其内容后运作。Shell脚本可以用来自动化操作,简化管理任务,提高工作效率。 …

事件驱动和动画

目录 表盘交互逻辑 24点纸牌游戏事件驱动 动画 图形动画 属性动画 帧动画 总结 表盘交互逻辑 1.定时器的使用 2.线程中如何更新UI 代码: public static void main(String[] args) {Application.launch();}public void start(Stage stage) {Timer timer = new Timer(…

从零手写实现 nginx-10-sendfile 零拷贝 zero-copy

前言 大家好,我是老马。很高兴遇到你。 我们为 java 开发者实现了 java 版本的 nginx https://github.com/houbb/nginx4j 如果你想知道 servlet 如何处理的,可以参考我的另一个项目: 手写从零实现简易版 tomcat minicat 手写 nginx 系列 …

【操作与配置】MySQL安装及启动

【操作与配置】MySQL安装及启动 下载MySQL 进入官网,选择社区版下载 在windows安装 选择不登陆下载 安装MySQL 双击官方安装包 选择“Developer Default”(默认)即可 Execute,安装完成后next TCP/IP端口等,默认即可…

vue3中作用域插槽

1、先说一下具名插槽 有时在一个组件中包含多个插槽出口是很有用的。举例来说&#xff0c;在一个 组件中&#xff0c;有如下模板&#xff1a; <div class"container"><header><!-- 标题内容放这里 --></header><main><!-- 主要内容…

【TS】进阶

一、类型别名 类型别名用来给一个类型起个新名字。 type s string; let str: s "123";type NameResolver () > string;: // 定义了一个类型别名NameResolver&#xff0c;它是一个函数类型。这个函数没有参数&#xff0c;返回值类型为string。这意味着任何被…

路灯夜景视频素材去哪里找?傍晚黄昏夜景路灯视频素材网分享

在这个数字化的时代&#xff0c;视频创作者们总是在寻找各种优质素材来提升作品的质感。特别是充满浪漫氛围的路灯夜景&#xff0c;为短视频、电影、广告等增添了独特的视觉魅力。今天&#xff0c;我为大家整理了几个优秀的视频素材网站&#xff0c;帮助您轻松找到高质量的路灯…