当前位置: 首页 > news >正文

详细分析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.lryc.cn/news/370217.html

相关文章:

  • JS的五种事件函数,各自应用场景又分别是什么
  • 电脑想加个WIFI功能,怎么选!
  • 机器学习——决策树
  • 弘君资本:苹果股价暴涨,创历史新高!
  • web前端拖拽工具:探索其复杂性、困惑度与爆发度
  • Web前端数据驱动视图的深度解析
  • HTML5的新语义化标签
  • 周一美股集体低开后转涨,早盘仅道指小幅下跌,英伟达跌超3%后转涨超1%
  • Phybers:脑纤维束分析软件包
  • 手机丢失不惊慌,华为手机已升级至楼层级设备查找!
  • SpringBoot 的多配置文件
  • [Java基础揉碎]网络相关概念
  • UE5 Sequencer 使用指导 - 学习笔记
  • Web前端项目源码:深入解析与未来探索
  • MyBatis的配置文件,即:src->main->resources的配置
  • completefuture造成的rpc重试事故
  • 6月11号作业
  • 探究Vue源码:深入理解diff算法
  • qt自适应图片
  • 【区块链】解码拜占庭将军问题:区块链共识机制的哲学基石
  • MCK主机加固:智能科技,构筑网络安全的铜墙铁壁
  • OpenCV 双目相机标定
  • WPF/C#:异常处理
  • 2024年跨平台应用解决方法
  • 人工智能ChatGPT的多种应用:提示词工程
  • OceanBase v4.2 解读:tenant=all 语义优化,提升易用性
  • 理论和实验
  • Linux 常用命令 - userdel 【删除用户】
  • 等保测评和安全运维
  • Java课程设计:基于Java+Swing+MySQL的图书管理系统(内附源码)