简单聊聊MySQL临时表(TEMPORARY TABLE)
短信预约 -IT技能 免费直播动态提醒
一、什么是临时表
MySQL临时表在很多场景中都会用到,MySQL内部在执行复杂SQL时,需要借助临时表进行分组、排序、去重等操作。
- 作用:临时表用来保存一些 “临时数据”
- 特点:
(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关键字,否则如果与非临时表表名重复也会被删除掉
四、执行验证
略。
写了个略,突然想起小时候,课本习题的答案好多都是略,还有的老师让把最后的答案整个撕下来上交,那些当时觉得难熬的日子,如今看来是那般无忧无虑。当学生,除了没钱什么都有,当员工,除了温饱,什么都没有。
来源地址:https://blog.csdn.net/shaofengzong/article/details/130035273
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341