mysql临时表(temporary table)使用方法详解

 更新时间:2024年01月24日 10:43:57   作者:@我每天都睡不醒@  
MySQL临时表在很多场景中都会用到,MySQL内部在执行复杂SQL时,需要借助临时表进行分组、排序、去重等操作,下面这篇文章主要给大家介绍了关于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临时表详解内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 浅谈innodb的索引页结构,插入缓冲,自适应哈希索引

    浅谈innodb的索引页结构,插入缓冲,自适应哈希索引

    下面小编就为大家带来一篇浅谈innodb的索引页结构,插入缓冲,自适应哈希索引。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-03-03
  • mysql导入sql文件出错的解决方法

    mysql导入sql文件出错的解决方法

    本文主要介绍了mysql导入sql文件出错的解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-08-08
  • 解决MySQL中的Slave延迟问题的基本教程

    解决MySQL中的Slave延迟问题的基本教程

    这篇文章主要介绍了解决MySQL中的Slave延迟问题的基本教程,文中针对不同情况给出了一些具体的解决方法,需要的朋友可以参考下
    2015-11-11
  • MySQL关闭过程详解和安全关闭MySQL的方法

    MySQL关闭过程详解和安全关闭MySQL的方法

    这篇文章主要介绍了MySQL关闭过程详解和安全关闭MySQL的方法,在了解了关闭过程后,出现故障能迅速定位,本文还给出了安全关闭MySQL的建议及方法,需要的朋友可以参考下
    2014-08-08
  • mysql 查询第几行到第几行记录的语句

    mysql 查询第几行到第几行记录的语句

    mysql 查询第几行到第几行记录 查询最后一行和第一行记录 查询前几行和后几行记录
    2011-07-07
  • linux系统中使用openssl实现mysql主从复制

    linux系统中使用openssl实现mysql主从复制

    在MySQL的主从复制中,其传输过程是明文传输,并不能保证数据的安全性,今天我们就来讨论下linux系统中使用openssl实现mysql主从复制,有需要的小伙伴可以参考下
    2016-11-11
  • mysql 求解求2个或以上字段为NULL的记录

    mysql 求解求2个或以上字段为NULL的记录

    这篇文章主要介绍了mysql 求解求2个或以上字段为NULL的记录,需要的朋友可以参考下
    2017-05-05
  • 图文详解mysql中with...as用法

    图文详解mysql中with...as用法

    这篇文章主要给大家介绍了关于mysql中with...as用法的相关资料,文中通过实例代码介绍的非常详细,对大家学习或者使用mysql具有一定的参考学习价值,需要的朋友可以参考下
    2022-01-01
  • 定时备份 Mysql并上传到七牛的方法

    定时备份 Mysql并上传到七牛的方法

    常见的 MySQL 数据备份方式有,直接打包复制对应的数据库或表文件(物理备份)、mysqldump 全量逻辑备份、xtrabackup 增量逻辑备份等。这篇文章主要介绍了定时备份 MySQL 并上传到七牛 ,需要的朋友可以参考下
    2018-10-10
  • Mysql模糊查询优化方法及测试详细讲解

    Mysql模糊查询优化方法及测试详细讲解

    这篇文章主要介绍了Mysql模糊查询优化方法及测试,在MySQL中支持模糊匹配的方法有很多,且各有各的优点,感兴趣想要详细了解可以参考下文
    2023-05-05

最新评论