mysql 把select结果保存为临时表,有2种方法
第一种,建立正式的表,此表可供你反复查询
drop table if exists a_temp;
create table a_temp as
select 表字段名称 from 表名称

或者,建立临时表,此表可供你当次链接的操作里查询.
create temporary table 临时表名称
select 表字段名称 from 表名称

当工作在非常大的表上时,你可能偶尔需要运行很多查询获得一个大量数据的小的子集,不是对整个表运行这些查询,而是让MySQL每次找出所需的少数记录,将记录选择到一个临时表可能更快些,然后多这些表运行查询。

创建临时表很容易,给正常的CREATE TABLE语句加上TEMPORARY关键字:

CREATE TEMPORARY TABLE tmp_table (
name VARCHAR(10) NOT NULL,
value INTEGER NOT NULL
)

临时表将在你连接MySQL期间存在。当你断开时,MySQL将自动删除表并释放所用的空间。当然你可以在仍然连接的时候删除表并释放空间。

DROP TABLE tmp_table

如果在你创建名为tmp_table临时表时名为tmp_table的表在数据库中已经存在,临时表将有必要屏蔽(隐藏)非临时表tmp_table。

如果你声明临时表是一个HEAP表,MySQL也允许你指定在内存中创建它:

CREATE TEMPORARY TABLE tmp_table (
name VARCHAR(10) NOT NULL,
value INTEGER NOT NULL
) TYPE = HEAP

因为HEAP表存储在内存中,你对它运行的查询可能比磁盘上的临时表快些。然而,HEAP表与一般的表有些不同,且有自身的限制。详见MySQL参考手册。

正如前面的建议,你应该测试临时表看看它们是否真的比对大量数据库运行查询快。如果数据很好地索引,临时表可能一点不快。

本文实例讲述了 mysql 临时表 用法。分享给大家供大家参考,具体如下: 一、创建 临时表 可以将 查询 结果寄存。报表制作的 查询 sql 可以用到。 (1)关于寄存方式, mysql 不支持: select * into tmp from maintenanceprocess (2)可以使用: create table tmp ( select ...) #单个工位检修结果表上部 drop table if EXISTS tmp_单个工位检修结果表(检查报告)上部; create table tmp_单个工位检修结果表(检查报告)上部 ( select workAreaName as '机器号',m 可以使用以下语句来创建从一个表里 查询 出来的数据的 临时表 : CREATE TEMPORARY TABLE temp_table AS SELECT * FROM original_table WHERE condition; 在这里,"temp_table"是 临时表 的名称,"original_table"是要从 查询 数据的表的名称,"condition"是 查询 的条件。 注意,这个 临时表 只在... 把 查询 出来的结果新建一张表或者另存为一张表进行存储,并增加一列id自增列, 以前本人的做法是: create table ‘表的名字’ as select * from ‘另一张表的名字’;(这里的*代表你想要执行的任何操作) alter table ‘上面新建的那张表的名字’ add id int not null primary key Auto_... SQLServer 临时表 有两种类型:本地和全局。它们在名称、可见性以及可用性上有区别。本地 临时表 的名称以单个数字符号(#)打头;它们仅对当前的用户连接是可见的;当用户从 SQL Server 实例断开连接时被删除。全局 临时表 的名称以两个数字符号(##)打头,创建后对任何用户都是可见的,当所有引用该表的用户从 SQL Server 断开连接时被删除。如果数据库会话创建了本地 临时表 #temtabl... 在开发数据库时,特别是写存储过程,遇到比较复杂的需求,使用 临时表 可以简化很多逻辑。曾经在一家互联网金融公司供职,公司数据组团队做数据清洗,写SQL脚本时,一个 查询 语句可以套到数层 查询 ,甚至十几层。看起来几百行上千行的脚本,其实他只是一个 查询 ,就是说是一个 select 基于另一个 select 的结果。这样层层叠叠,同时还包含了聚合、排序、关联、联合等,看起来是相当的费劲,头疼。如果这里能使用 临时表 ,那么就会使逻辑清晰很多, 查询 效率也会得到提升。本文以数据库World为例进行说明。...... MySQL 不支持对同一个表使用其 查询 结果更新or删除本表内数据(也就是update或delete后的where条件为针对相同表的 select ),解决方案是创建 临时表 做过度 保存 间数据; 可以直接使用 查询 结果来形成 临时表 : CREATE TABLE tmp AS ( SELECT column1 AS field1, column2 AS field2...); 形成的结果表名称为 tm... 额外收获知识收藏如下: 临时表 存储 MySQL 临时表 分为“内存 临时表 ”和“磁盘 临时表 ”,其 内存 临时表 使用 MySQL 的MEMORY存储引擎,磁盘 临时表 使用 MySQL 的MyISAM存储引擎; 一般情况下, MySQL 会先创建内存 临时表 ,但内存 临时表 超过配置指定的值后, MySQL 会将内存 临时表 ... 用 SELECT 的结果创建表关系数据库的一个重要概念是,任何数据都表示为行和列组成的表,而每条 SELECT 语句的结果也都是一个行和列组成的表。在许多情况下,来自 SELECT 的“表”仅是一个随着您的工作在显示屏上滚动的行和列的图像。在 MySQL 3.23 以前,如果想将 SELECT 的结果 保存 在一个表 以便以后的 查询 使用,必须进行特殊的安排:1) 运行 DESCRIBE 或 SHOW ... 4.修改表 非科班自学SQLSERVER和C#编程两年。该系列文章 涉及的知识点是在工作 需要用到的一些基础知识。文章比较适合初识数据库的学生或自学数据库的成人,文章是以SSMS作为例子。如果有认知错误的地方请大家指正。 函数的快捷方式,在 SQL Server 则为。你想将多列的值合并为一列。使用数据库 的内置函数来串联多列的值。这些数据库把双竖线作为串联运算符。函数可以串联多列的值。表,并获得如下结果集。然而,你需要的数据来自。 select * from t_p; 2、将 查询 结果 保存 到一张已经存在的hive表 (用load的时候,可以是into或者overwrite into,这里是into或者overwrite) insert into/overwrite table...