广告
返回顶部
首页 > 资讯 > 数据库 >MySQL临时表的使用方法详解
  • 605
分享到

MySQL临时表的使用方法详解

2024-04-02 19:04:59 605人浏览 八月长安
摘要

目录1. 写在前面的话2. 临时表的使用2.1 创建一个只存放亚洲国家信息的临时表2.1.1 创建临时表2.1.2 向临时表里写数据2.2 在查询过程中直接创建临时表2.3 查询临时表中的数据2.4 删除临时表3. 以上

1. 写在前面的话

开发数据库时,特别是写存储过程,遇到比较复杂的需求,使用临时表可以简化很多逻辑。曾经在一家互联网金融公司供职,公司数据组团队做数据清洗,写sql脚本时,一个查询语句可以套到数层查询,甚至十几层。看起来几百行上千行的脚本,其实他只是一个查询,就是说是一个select基于另一个select的结果。这样层层叠叠,同时还包含了聚合、排序、关联、联合等,看起来是相当的费劲,头疼。

就如下列样式:


SELECT
	T1.A1,
	T1.A2,
	T1.A3...
FROM
	(
		SELECT
			T2.B1,
			T2.B2,
			T2.B3...
		FROM
			(
				SELECT
					...
				UNION ALL
					SELECT
						...)
					WHERE
						...
					GROUP BY
						...) T1,
						(
							SELECT
								T3.C1,
								T3.C2,
								T3.C3...
							FROM
								(
									SELECT
										...)
									WHERE
										...
									GROUP BY
										...) T3
									WHERE
										T1.A1 = T3.C1...

如果这里能使用临时表,那么就会使逻辑清晰很多,查询效率也会得到提升。比如在多处使用到同一个查询的结果时,就可以只执行一次查询,将结果保存为临时表,在查询过程中每次使用到时,直接从临时表查就可以了,不用每次使用都再去查询一遍原始数据,尤其是对于复杂关联查询结果。

当时数据是来源于呼叫中心,每天都会产生几百万行数据,一个月就上亿行的数据量,就当时的机器性能基础上,在这个数据量来做统计操作,如果没有高效的脚本,是非常耗时间的。同时,数据组职员并没有专业数据库设计能力。

本文以数据库World为例进行说明。

2. 临时表的使用

World数据库中数据表country放着全世界国家的相关信息。

2.1 创建一个只存放亚洲国家信息的临时表

2.1.1 创建临时表

创建一个只存放亚洲国家信息的临时表,命名为TempAsiaCountries
这里临时只取四个字段Code,Name,SufaceArea,Population,那么创建临时表的脚本如下:

# 创建临时表
CREATE TEMPORARY TABLE TempAsiaCountries (
	`Code` VARCHAR (10),
	`name` VARCHAR (30),
	`SufaceArea` NUMERIC,
	`Population` NUMERIC
);

创建完之后,会发现在数据库的表目录下并没有这个表,因为表是临时的,所以不会出现在表目录里。

MySQL临时表的使用方法详解

2.1.2 向临时表里写数据

如同写实体表数据一样,可以通过INSERT INTO 关键字进行表插入数据操作。

# 写数据到临时表
INSERT INTO TempAsiaCountries
SELECT
	`Code`,
	`Name`,
	`SurfaceArea`,
	`Population`
FROM
	country
WHERE
	`Continent` = 'Asia';

此时,可以通过SELECT操作查询临时表里的数据。

2.2 在查询过程中直接创建临时表

在实际使用临时表时,可以更快速便捷的创建临时表,如下脚本,直接以查询结果创建临时表的方法。

CREATE TEMPORARY TABLE TempAsiaCountries 
SELECT
	`Code`,
	`Name`,
	`SurfaceArea`,
	`Population`
FROM
	country
WHERE
	`Continent` = 'Asia';

2.3 查询临时表中的数据

对临时表的查询操作与实体表一样,如下是查询前文中所创建的临时表中的数据

# 查询临时表
SELECT *
FROM TempAsiaCountries;

可以看到查询结果

MySQL临时表的使用方法详解

2.4 删除临时表

# 删除临时表
DROP TABLE TempAsiaCountries;

此时再查,就会返回表不存在的结果

MySQL临时表的使用方法详解

3. 以上操作的全部代码

# 创建临时表
CREATE TEMPORARY TABLE TempAsiaCountries (
	`Code` VARCHAR (10),
	`name` VARCHAR (30),
	`SufaceArea` NUMERIC,
	`Population` NUMERIC
);

# 第一种
# 写数据到临时表
INSERT INTO TempAsiaCountries
SELECT
	`Code`,
	`Name`,
	`SurfaceArea`,
	`Population`
FROM
	country
WHERE
	`Continent` = 'Asia';

# 查询临时表
SELECT *
FROM TempAsiaCountries;

# 第二种
# 查询数据并写到临时表中
CREATE TEMPORARY TABLE TempAsiaCountries 
SELECT
	`Code`,
	`Name`,
	`SurfaceArea`,
	`Population`
FROM
	country
WHERE
	`Continent` = 'Asia';

# 删除临时表
DROP TABLE TempAsiaCountries;


总结

临时表在使用上与实体表没任何区别,实事他们的区别也就是”临时“二字。临时表是在查询过程中依据需要创建,并在使用完后删除的表结构。表可以暂存于内存中,也可以暂存在硬盘上。

在SqlServer中的临时表操作有全局临时表和局部临时表区分,他们分别用**#表名##表名**来表示,其中全局临时表并不会随着用户的退出而消失,而且其它用户也可使用。

Mysql中似乎没有这个区分。

到此这篇关于mysql临时表使用的文章就介绍到这了,更多相关MySQL临时表使用内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

您可能感兴趣的文档:

--结束END--

本文标题: MySQL临时表的使用方法详解

本文链接: https://www.lsjlt.com/news/34077.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • MySQL临时表的使用方法详解
    目录1. 写在前面的话2. 临时表的使用2.1 创建一个只存放亚洲国家信息的临时表2.1.1 创建临时表2.1.2 向临时表里写数据2.2 在查询过程中直接创建临时表2.3 查询临时表中的数据2.4 删除临时表3. 以上...
    99+
    2022-09-18
  • MySQL 内存表和临时表的用法详解
    内存表: session 1 $ mysql -uroot root@(none) 10:05:06>use test Database changed root@test 10:06:06>CREA...
    99+
    2022-05-23
    MySQL 内存表 临时表
  • MySQL使用临时表简单方法
    本文主要给大家简单讲讲MySQL使用临时表简单方法,相关专业术语大家可以上网查查或者找一些相关书籍补充一下,这里就不涉猎了,我们就直奔主题吧,希望MySQL使用临时表简单方法这篇文章可以给大家带来一些实际帮...
    99+
    2022-10-18
  • MySQL 5.7临时表空间的使用方法
    这篇文章将为大家详细讲解有关MySQL 5.7临时表空间的使用方法,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。导读MySQL 5.7的目标是成为发布以来最安全的MySQ...
    99+
    2022-10-18
  • Mysql临时表及分区表区别详解
    临时表与内存表 内存表,指的是使用Memory引擎的表,建表语法是create table … engine=memory。这种 表的数据都保存在内存里,系统重启的时候会被清空,但是表结构还在。除...
    99+
    2022-05-26
    Mysql 临时表 分区表
  • Mysql临时表原理及创建方法解析
    这篇文章主要介绍了Mysql临时表原理及创建方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 mysql 利用 temporary 关键字就可以创建...
    99+
    2022-10-18
  • mysql临时表怎么使用
    这篇文章主要介绍了mysql临时表怎么使用的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇mysql临时表怎么使用文章都会有所收获,下面我们一起来看看吧。 ...
    99+
    2022-10-19
  • MySQL 临时表的原理以及优化方法
    目录1 临时表2 union临时表优化3 group by临时表优化1 临时表 sort buffer、内存临时表和join buffer,这三个数据结构都是用来存放语句执行过程中的中间数据,以辅助SQL语句的...
    99+
    2022-08-22
    MySQL 临时表优化 MySQL 临时表
  • MySQL中临时表的使用示例
        这两天事情稍微有点多,公众号也停止更新了几天,结果有读者催更了,也是,说明还是有人关注,利己及人,挺好。     今天分享的内容是MySQL中的临时...
    99+
    2022-05-22
    MySQL 临时表 MySQL
  • mysql中的临时表如何使用
    目录1.什么是临时表2.临时表的使用场景uniongroupby3.groupby 如何优化总结1.什么是临时表 内部临时表是sql语句执行过程中,用来存储中间结果的的数据表,其作用类似于:join语句执行过程...
    99+
    2022-09-26
  • MySQL中临时表如何使用
    今天就跟大家聊聊有关MySQL中临时表如何使用,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。MySQL如何使用临时表 【临时表存储】MyS...
    99+
    2022-10-18
  • 临时表空间过大解决方法
    临时表空间过大解决方法解决临时表空间过大有两种方法,方法一增加临时表空间的大小,方法二重建临时表空间,解决临时表空间过大的问题。方案一:增加临时表空间的大小--1.临时表空间的使用情况SELECT ...
    99+
    2022-10-18
  • sql语句中临时表使用实例详解
    目录一、临时表实现分步处理1.概述2.实例2.1表格结构2.2需求2.3sql语句2.4sql语句解析二、临时表实现分层处理1、概述2、实例2.1表结构2.2需求2.3sql语句2.4sql语句解析一、临时表实现分步处理...
    99+
    2023-02-16
    SQL临时表使用 SQL临时表
  • MySQL内部临时表的具体使用
    目录UNION表初始化执行语句UNION RESULTUNION ALLGROUP BY内存充足执行语句执行过程排序过程ORDER BY NULL内存不足执行...
    99+
    2022-11-12
  • 怎么在mysql中使用临时表
    这篇文章将为大家详细讲解有关怎么在mysql中使用临时表,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。一、创建临时表可以将查询结果寄存(1)关于寄存方式,m...
    99+
    2022-10-18
  • 如何在MySQL中使用临时表
    这期内容当中小编将会给大家带来有关如何在MySQL中使用临时表,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。创建临时表很容易,给正常的CREATE TABLE语句加上TE...
    99+
    2022-10-18
  • Shell中建立与使用临时性文件的方法详解
    前言 在我们日常开发中经常会需要用到临时文件,本文就给大家介绍了关于Shell建立与使用临时性文件的相关内容,分享出来供大家参考学习,话不多说了,来一起看看详细的介绍: 虽然使用管道可以省去建立临时性文件的...
    99+
    2022-06-04
    详解 文件 方法
  • mysql临时表的作用是什么
    今天小编给大家分享一下mysql临时表的作用是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一...
    99+
    2023-05-25
    mysql
  • 使用MySQL实现select into临时表的功能
    目录MySQL select into临时表select into 临时表create 临时表mysql临时表(可以将查询结果存在临时表中)创建临时表可以将查询结果寄存my...
    99+
    2022-11-13
  • 使用MySQL实现select into临时表的功能
    目录mysql select into临时表select into 临时表create 临时表mysql临时表(可以将查询结果存在临时表中)创建临时表可以将查询结果寄存mysql把select结果保存为临时表,...
    99+
    2022-09-26
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作