当前位置: 代码网 > it编程>数据库>Mysql > Mysql临时变量的具体使用

Mysql临时变量的具体使用

2024年08月04日 Mysql 我要评论
前言临时变量主要分为用户变量和会话变量1. 用户变量用户变量是特定于会话的,在单个会话内可以在多个语句中共享以@符号开头在 sql 语句中使用 set 语句或直接在查询中赋值声明和赋值set @var

前言

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

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临时变量内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网! 

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com