简单聊聊MySQL临时表(TEMPORARY TABLE)

2023-11-08

一、什么是临时表

MySQL临时表在很多场景中都会用到,MySQL内部在执行复杂SQL时,需要借助临时表进行分组、排序、去重等操作。

  1. 作用:临时表用来保存一些 “临时数据”
  2. 特点:
    (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关键字,否则如果与非临时表表名重复也会被删除掉

四、执行验证

略。

写了个略,突然想起小时候,课本习题的答案好多都是略,还有的老师让把最后的答案整个撕下来上交,那些当时觉得难熬的日子,如今看来是那般无忧无虑。当学生,除了没钱什么都有,当员工,除了温饱,什么都没有。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

简单聊聊MySQL临时表(TEMPORARY TABLE) 的相关文章

  • 从 SQL 数据库获取日期时间

    我的数据库表中有一个 DateTime 记录 我编写一个查询从数据库中获取它 string command2 select Last Modified from Company Data where Company Name Descrip
  • 从 Presto 中的 JSON 列获取特定值

    我有一个带有 JSON 列的表points其中一行为 0 0 2 1 1 2 2 0 5 15 1 2 20 0 7 我想获取键的值 1 and 20 并将它们存储为别名 例如first and second在查询中 到目前为止我所做的是
  • 如何调试参数化 SQL 查询

    我使用 C 连接到数据库 然后使用 Ad hoc SQL 来获取数据 这个简单的 SQL 查询非常方便调试 因为我可以记录 SQL 查询字符串 如果我使用参数化 SQL 查询命令 有没有办法记录 sql 查询字符串以进行调试 我想就是这样的
  • 错误代码:1062。重复条目“PRIMARY”

    因此 我的教授给了我表格将其插入数据库 但是当我执行他的代码时 MySQL 不断给出错误代码 1062 这是冲突表和插入 TABLES CREATE TABLE FABRICANTES COD FABRICANTE integer NOT
  • SQL Server 2008 GUID 列全为 0

    我希望这是我做的一个简单的傻事 我的数据库中有一个表 设置如下 column name widget guid data type uniqueidentifier allow nulls false default value newid
  • PL/SQL 过程:如何返回 select 语句?

    我想创建一个存储过程 on ORACLE数据库服务器我的问题是 我不知道如何返回 select 语句 这是程序中应包含的逻辑 输入参数 过滤器1 int 过滤器2 字符串 with cte as select val1 val2 stdde
  • 如何在postgresql中编写有关最大行数的约束?

    我认为这是一个很常见的问题 我有一张桌子user id INT 和一张桌子photo id BIGINT owner INT 所有者是一个参考user id 我想向表照片添加一个约束 以防止每个用户将超过 10 张照片输入数据库 写这个的最
  • IN 运算符对 SQL 查询性能的影响有多大?

    我的 SQL 查询需要 9 个小时才能执行 见下文 Select Field1 Field2 From A Where Field3 IN 45 unique values here 当我将此查询拆分为 3 个完全相同的查询 仅每个 IN
  • value >= all(select v2 ...) 产生与 value = (select max(v2) ...) 不同的结果

    Here https stackoverflow com questions 17026651 query from union of joins 17027784 noredirect 1 comment24611997 17027784
  • 如何在“order by”中添加条件?

    我有一个带有输入参数的存储过程 现在根据这个参数 我的 order by 语句将发生变化 如果输入参数是 ID int类型列 则按ID排序 如果是 ProductType 则按产品类型排序 如果是 IssueDate 则应按问题日期排序 现
  • 迁移问题:MS SQL > MySQL:插入缓冲区内存

    我在使用 MySQL Workbench 上的内置迁移工具时遇到问题 我正在将一个非常大的数据库从 MS SQL 2014 迁移到 MySQL MS SQL 服务器本地部署在我的 Windows 8 1 桌面上 MySQL 服务器在我的网络
  • 更高效的 LINQ 查询

    有人可以帮我将此查询循环变成高效的 Linq 查询吗 我将其加载到 TreeView 中 因此必须附加每个项目 包含也非常低效 延迟加载项目也不起作用 事实上 这个查询访问数据库的次数比应有的要多 public IQueryable
  • 蟒蛇 | MySQL | AttributeError:模块“mysql.connector”没有属性“connect”

    我正在学习 python 中的一个新库 mysql 我尝试执行以下命令 import mysql connector mydb mysql connector connect host localhost user root passwd
  • 如何修复“未知变量'sql-mode = ANSI'”?

    使用 MySQL 5 5 27 在 my cnf 中我有 mysql sql mode ANSI 启动 mysql 控制台后我得到 unknown variable sql mode TRADITIONAL MySQL 文档服务器 SQL
  • Apache 子进程已退出,状态为 255

    经过大量的搜索 尝试 修复 等待和哭泣 在我放弃之前 我想为这个错误抓住最后的机会 我们正在奔跑Microsoft Windows Server 2012 Apache 2 4 6 Win64 OpenSSL 1 0 1e PHP 5 5
  • 具有“日期之间”的 CakePHP 模型

    我有一个很大的数据集 超过十亿行 数据在数据库中按日期分区 因此 我的查询工具必须在每个查询上指定一个 SQL Between 子句 否则它将必须扫描每个分区 而且 它会在返回之前超时 所以 我的问题是 分区的数据库中的字段是日期 使用 C
  • 控制数据是否存在于数组中

    我在mysql中有两个不同的表 我正在使用curl从json文件中获取数据 我的第一个表名称是 tblclients 该表存储客户端数据 我的第二个表名称是 tblcustomfieldsvalues 该表使用 tblclients 表的
  • 如何重置 SQL Server 中表的 IDENTITY 列? [复制]

    这个问题在这里已经有答案了 我怎样才能重置我的IDENTITY我已经填充的表中的列 我尝试过类似的方法 但它不起作用 WITH TBL AS SELECT ROW NUMBER OVER ORDER BY profile id AS RN
  • 如何对字段数据进行分组?

    我有 sql 查询来显示数据 SELECT artikel foto naam fotografer id fotografer name fotografer customer first name customer last name
  • Mysql加密/存储敏感数据,

    我的 PHP 网站有以下内容 启用 SSL 饼干 session set cookie params cookieParams lifetime cookieParams path cookieParams domain secure ht

随机推荐

  • Conflux Studio 安装教学

    在 Conflux Studio 详解 中 烤仔从安装 教程 功能预览三个方面向大家介绍了 Conflux Studio 本次 由黑曜石实验室的 CEO Phil 向大家展示如何使用 Conflux Studio 进行一个完整的 Confl
  • 使用jenkins进行项目部署

    前言 由于近期接手了前端的项目 在项目打包部署的时候 手动操作构建打包部署等等步骤非常繁琐 所以自己尝试使用jenkins帮助自己解决这一烦恼 之前有用过 但只是使用而已 这次借机自己搭建配置一下 本以为很简单但是在自己使用的过程也多多少少
  • DCMM GBT 36073-2018 数据管理能力成熟度评估模型(Word版)

    ICS 35 240 70 L 67 中华人民共和国国家标准 GB T 36073 2018 数据管理能力成熟度评估模型 Data management capability maturity assessment model 2018 0
  • QT::槽函数关联的三种方式

    1 第一种方法 首先在头文件中定义 private slots void show l 在 cpp中进行connect QtGuiApplication3 QtGuiApplication3 QWidget parent QMainWind
  • C与C++的不同--------extern

    extern可以置于变量或者函数前 以表示变量或者函数的定义在别的文件中 提示编译器遇到此变量和函数时在其他模块中寻找其定义 另外 extern也可用来进行链接指定 C 语言的创建初衷是 a better C 但是这并不意味着C 中类似C语
  • 分布式MySQL数据库TDSQL架构分析

    分布式MySQL数据库TDSQL架构分析 发表于 11小时前 次阅读 来源 程序员电子刊 0 条评论 作者 雷海林 MySQL TDSQL 腾讯 架构 width 22 height 16 src http hits sinajs cn A
  • 区块链平台开发

    太晚了 明天写
  • MVCC 脑图 数据库事务并发版本控制

    学习MySQL MVCC时做的脑图 记个笔记
  • 来了来了,2023年某中大厂真实面经!

    300万字 全网最全大数据学习面试社区等你来 本篇文章的面经是我辅导的一个同学的真实面试经历 2023年校招的宝子们拿走快看 第一个面经来自某头部大厂 1 做过的项目细节和遇到的问题 30分钟 所以说大家要对简历中的项目细节了如指掌 2 实
  • 如何在一个vue项目中集成electron框架

    将electron框架集成到vue文件中 不改变vue文件的原有结构 1 在vue文件中安装electron框架 运行代码 vue add electron builder nde为v16的 electron版本一般选择 electron
  • WSL2 使用桥接网络(不使用代理,局域网可独立IP访问)

    1 一切开始之前首先需要启动 WSL 直接在命令行运行运行 wsl 即可 这样 WSL 的网卡才会被自动创建出来 2 查看 网卡 管理员权限运行 PowerShell 运行 Get NetAdapter获取所有的网卡信息 注意这里的网卡不能
  • Using fork in Perl to spread load to multiple cores

    原文链接 https perlmaven com fork If you have a big task to do that needs a lot of computation but can be split up in severa
  • 【华为OD机试真题 JAVA】素数之积

    JS版 华为OD机试真题 JS 素数之积 标题 素数之积 时间限制 1秒 内存限制 262144K 语言限制 不限 RSA加密算法在网络安全世界中无处不在 它利用了极大整数因数分解的困难度 数据越大 安全系数越高 给定一个32位正整数 请对
  • 熔断机制-HYSTRIX

    一 问题产生 雪崩效应 是一种因服务提供者的不可用导致服务调用者的不可用 并将不可用逐渐放大的过程 正常情况下的服务 某一服务出现异常 拖垮整个服务链路 消耗整个线程队列 造成服务不可用 资源耗尽 形成过程 1 服务提供者不可用 a 硬件故
  • GPT-4掀起智能革命浪潮,AI风口下将涌现哪些新机遇?

    本文已同步发表至公众号 https mp weixin qq com s kTMhMZQ nfIbbeeXLnDeyA 编辑 AGI之心 3 月 15 日 OpenAI 发布 GPT 4 多模态大模型 支持文本和图像输入 相比前段时间大火的
  • AttributeError: ‘Namespace‘ object has no attribute ‘use_pdserving‘

    问题描述 按照文档安装 运行paddleocr的 demo的时候报这个错 AttributeError Namespace object has no attribute use pdserving 但是我用命令行能跑出来 解决办法 在pa
  • openwrt安装和使用minicom

    opkg list先看一下软件源里面有没有minicom包 有的话就直接安装 opkg install minicom 安装完后执行minicom v查看版本信息确认是否安装成功 安装完成后 把USB串口设备插入到路由器USB口 我用的是p
  • 只出现一次的数字python--只求和?(简单到偷懒)

    对于刚开始接触python小白去刷算法题老想偷懒 想看算法 等等大神 还没学会 哈哈哈哈 水一篇 简单到应该不用加备注 嘿嘿嘿 给定一个非空整数数组 除了某个元素只出现一次以外 其余每个元素均出现两次 找出那个只出现了一次的元素 class
  • 防盗报警系统功能简述

    周界防护系统主要是一些探测设备组成 利用现代科技的声 光处理技术 在第一线感知各种破坏 和犯罪行为 减少犯罪的几率 其主要的器材是红外对射探头 红外对射探头全名叫 光束遮断式感应器
  • 简单聊聊MySQL临时表(TEMPORARY TABLE)

    目录什么的也不需要 一 什么是临时表 二 临时表有哪些类型 1 内部临时表 2 外部临时表 三 对外部临时表说两句 四 执行验证 一 什么是临时表 MySQL临时表在很多场景中都会用到 MySQL内部在执行复杂SQL时 需要借助临时表进行分