简单聊聊MySQL临时表(TEMPORARY TABLE)

文章介绍了MySQL中的临时表概念,包括内部临时表在处理复杂SQL时的作用,以及外部临时表的创建和生命周期。外部临时表由CREATETEMPORARYTABLE语句创建,只在当前连接可见,随连接关闭自动删除,强调了数据安全和使用注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、什么是临时表

MySQL临时表在很多场景中都会用到,MySQL内部在执行复杂SQL时,需要借助临时表进行分组、排序、去重等操作。

  1. 作用:临时表用来保存一些 “临时数据”
  2. 特点:
    (1) 临时表只在“当前连接”可见,当关闭连接时,MySQL会自动删除表数据及表结构
    (2) 临时表 和 普通表 用法一样,用关键字 “TEMPORARY” 予以区别

二、临时表有哪些类型

1、内部临时表:

通常在执行复杂SQL语句时,比如group by,distinct,union等语句,执行计划中如果包含Using temporary,那么MySQL内部将使用自动生成的临时表,以辅助SQL的执行。比如:
在这里插入图片描述

2、外部临时表:

**通过CREATE TEMPORARY TABLE语句创建的临时表为外部临时表,在创建时可以手动指定临时表的存储引擎。**比如:

CREATE TEMPORARY TABLE temp_t(
	id INT,
	name VARCHAR(10)
) ENGINE = InnoDB;
INSERT INTO temp_t VALUES (1,'one'),(2,'two'),(3,'three');

SELECT * FROM temp_t;

DROP TEMPORARY TABLE temp_t;

**外部临时表还可以通过查询结果进行直接创建。**比如:

CREATE TEMPORARY TABLE tmp_t SELECT * FROM 指定的table_name;

三、对外部临时表说两句

  • 再次重申一下,外部临时表的生命周期仅仅是当前连接
  • SHOW TABLES;命令并不能看到创建的外部临时表,内部的当然更看不到
  • 但是,外部创建的临时表可以通过SELECT语句进行查询
  • 外部临时表会随着连接的关闭而被自动清理掉,当然也可以手动进行删除。特别注意,为了数据安全避免误操作,在删除临时表时,一定不能省略TEMPORARY关键字,否则如果与非临时表表名重复也会被删除掉

四、执行验证

略。

写了个略,突然想起小时候,课本习题的答案好多都是略,还有的老师让把最后的答案整个撕下来上交,那些当时觉得难熬的日子,如今看来是那般无忧无虑。当学生,除了没钱什么都有,当员工,除了温饱,什么都没有。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

是小宗啊?

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值