> 文章列表 > 简单聊聊MySQL临时表(TEMPORARY TABLE)

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

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

目录什么的也不需要

  • 一、什么是临时表
  • 二、临时表有哪些类型
    • 1、内部临时表:
    • 2、外部临时表:
  • 三、对外部临时表说两句
  • 四、执行验证

一、什么是临时表

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

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

二、临时表有哪些类型

1、内部临时表:

通常在执行复杂SQL语句时,比如group by,distinct,union等语句,执行计划中如果包含Using temporary,那么MySQL内部将使用自动生成的临时表,以辅助SQL的执行。比如:
简单聊聊MySQL临时表(TEMPORARY TABLE)

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关键字,否则如果与非临时表表名重复也会被删除掉

四、执行验证

略。

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