Mysql临时变量的具体使用

 更新时间:2024年08月04日 11:28:02   作者:码农研究僧  
本文主要介绍了Mysql临时变量的具体使用,临时变量有分为用户变量和会话变量,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

前言

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

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';

截图如下:

在这里插入图片描述

到此这篇关于Mysql临时变量的具体使用的文章就介绍到这了,更多相关Mysql临时变量内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家! 

您可能感兴趣的文章:

相关文章

  • 一篇文章带你了解清楚Mysql 锁

    一篇文章带你了解清楚Mysql 锁

    这篇文章主要介绍了一篇文章带你了解清楚Mysql 锁的相关资料,需要的朋友可以参考下
    2022-11-11
  • SQL语句中LEFT JOIN的ON和WHERE有什么区别

    SQL语句中LEFT JOIN的ON和WHERE有什么区别

    这篇文章主要介绍了SQL语句中LEFT JOIN的ON和WHERE之间的区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习吧
    2022-12-12
  • mysql如何匹配数组字段中的某一个具体值

    mysql如何匹配数组字段中的某一个具体值

    在数据库操作中,有时需要查询数组字段中包含特定值的数据,传统like查询可能会带来错误结果,如查询包含数字1的数组可能错误返回包含数字10的结果,为此,可以使用MySQL的FIND_IN_SET函数或REGEXP正则表达式进行精确匹配,FIND_IN_SET适用于匹配单个固定值
    2024-11-11
  • MySQL中数据类型的验证

    MySQL中数据类型的验证

    这篇文章主要介绍了MySQL中数据类型的验证 的相关资料,需要的朋友可以参考下
    2016-04-04
  • MySQL通过show processlist命令检视性能的讲解

    MySQL通过show processlist命令检视性能的讲解

    今天小编就为大家分享一篇关于MySQL通过show processlist命令检视性能的讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-03-03
  • 详解MySQL8.0 密码过期策略

    详解MySQL8.0 密码过期策略

    这篇文章主要介绍了MySQL8.0 密码过期策略的相关资料,帮助大家更好的理解和使用MySQL8.0的新功能,感兴趣的朋友可以了解下
    2020-11-11
  • MySQL复制之GTID复制的具体使用

    MySQL复制之GTID复制的具体使用

    从MySQL 5.6.5开始新增了一种基于GTID的复制方式,本文主要介绍了MySQL复制之GTID复制的具体使用,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-05-05
  • MySQL COUNT函数的使用与优化

    MySQL COUNT函数的使用与优化

    优化COUNT函数的查询在 MySQL 中最容易被误解的话题中能够排进前10名,我们可以在网上搜索了解更多关于 COUNT 优化的误解信息。在进行优化前,理解 COUNT 到底做了什么很重要。
    2021-05-05
  • MySQL中使用SQL语句对字段进行重命名

    MySQL中使用SQL语句对字段进行重命名

    MySQL中,如何使用SQL语句来对表中某一个字段进行重命名呢?我们将使用alter table 这一SQL语句,需要的朋友可以参考下
    2016-04-04
  • mysql判断字段是否存在的方法

    mysql判断字段是否存在的方法

    mysql判断字段是否存在的方法有很多,如使用desc命令、show columns 命令、describe 命令等等,感兴趣的朋友可以参考下
    2014-01-01

最新评论