mysql临时表(temporary table)使用方法详解
概述
***1. 作用:临时表用来保存一些 '临时数据'
2. 注意:
(1) 临时表只在 '当前连接' 可见,当关闭连接时,Mysql 会 '自动删除表数据及表结构'
(2) 临时表 和 普通表 用法一样,用关键字 'temporary' 予以区别***
临时表
1、创建一个临时表 test
命令:
创建临时表test,保存所有ID信息
CREATE TEMPORARY TABLE test( id int(2) );
运行结果:l临时表test创建成功
INSERT INTO test values (10);
运行结果:添加数据成功
select * from test
运行结果:临时表中数据查询成功
使用命令查看数据库中是否存在创建的临时表:
show tables
**总结:临时表是一张表,用来临时保存一些数据。它只对创建它的会话可见。当会话结束时,MySQL自动删除临时表(表结构和表数据库),并且临时表不会存进mysql中**
2、使用相同的名字创建一个普通表和临时表
会话可以创建一个和已有的普通表名字相同的临时表。在这种情况下,该会话只能看到临时表而看不见同名的普通表。当临时表被删除后,才可以看到普通表
2、1创建普通表;
CREATE TABLE testable (c1 INT); INSERT INTO testable VALUES(1);
创建的普通表已经存在,表结构,表数据都可以正常查询。
2、2 创建与普通表相同的临时表;
CREATE TEMPORARY TABLE testable(c1 INT,c2 INT); INSERT INTO testable VALUES(4,10); SELECT * FROM testable;
与普通表名称相同的临时表创建成功,查询返回的表结构、表数据都是临时表的结果,普通表的信息无返回结果,
删除临时表,普通表的才能恢复正常:
删除临时表,此时查询返回的结果就是普通表的信息
总结:会话可以创建一个和已有的普通表名字相同的临时表。在这种情况下,该会话只能看到临时表而 看不见同名的普通表。当临时表被删除后,才可以看到普通表
附:临时表的作用和优势
1、查询优化
临时表能够改善复杂查询的性能和可读性。例如,当需要执行多个依赖于前一个查询结果的SQL查询时,可以使用临时表来存储每个查询步骤的结果。这样做减少了重复计算和提高了代码整洁度。
2、数据整合
在需要从多个数据源汇总数据时,临时表可以起到桥梁的作用。它们使得数据格式统一化、易于处理。
3、处理用户会话相关数据
在Web应用中,例如在线购物网站,临时表可用于存储用户会话期间的状态信息,比如购物车内容。
4、批量数据处理
在需要对大量数据进行更新或清理时,临时表可以作为缓冲层,减少直接对生产环境的影响。
例如:公司需要生成一个报告,其中包含来自销售和财务两个部门数据库的数据。这两个数据库有不同的结构,使用临时表可以先将数据整合起来。
-- 从销售数据库创建一个临时表 CREATE TEMPORARY TABLE temp_sales_data AS SELECT product_id, SUM(quantity) AS total_quantity FROM sales_database.sales GROUP BY product_id; -- 从财务数据库插入数据到临时表 INSERT INTO temp_sales_data (product_id, total_quantity) SELECT product_code, SUM(sold_units) AS total_quantity FROM finance_database.financial_records GROUP BY product_code; -- 使用整合后的数据生成报告 SELECT product_id, total_quantity FROM temp_sales_data;
总结:
1.临时表是一张表,用来临时保存一些数据。它只对创建它的会话可见。当会话结束时,MySQL自动删除临时表(表结构和表数据库),并且临时表不会存进mysql中。
2.会话可以创建一个和已有的普通表名字相同的临时表。在这种情况下,该会话只能看到临时表而 看不见同名的普通表。当临时表被删除后,才可以看到普通表`
到此这篇关于mysql临时表(temporary table)使用方法详解的文章就介绍到这了,更多相关mysql临时表详解内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
MySql 字符集不同导致 left join 慢查询的问题解决
当两个表的字符集不一样,在使用字符型字段进行表连接查询时,就需要特别注意下查询耗时是否符合预期,本文主要介绍了MySql 字符集不同导致 left join 慢查询的问题解决,感兴趣的可以了解一下2024-05-05通过sysbench工具实现MySQL数据库的性能测试的方法
sysbench是一款压力测试工具,可以测试系统的硬件性能,也可以用来对数据库进行基准测试。这篇文章主要介绍了通过sysbench工具实现MySQL数据库的性能测试 ,需要的朋友可以参考下2019-07-07mysql正确删除数据的方法(drop,delete,truncate)
这篇文章主要给大家介绍了关于mysql正确删除数据的相关资料,DELETE语句是MySQL中最常用的删除数据的方式之一,但也有几种其他方法来实现,需要的朋友可以参考下2023-10-10
最新评论