简单聊聊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) 的相关文章

  • MYSQL从每个类别中随机选择一条记录

    我有一个数据库Items表看起来像这样 id name category int 有几十万条记录 每个item可以是 7 种不同的之一categories 对应于categories table id category 我想要一个从每个类别
  • mysql自动存储记录创建时间戳

    mysql 有什么方法可以在创建记录时自动将时间戳存储在记录行中 我试图使用时间戳 数据类型 和 current timestamp 作为默认值 但后来意识到每次更新记录时都会更新 我只需要一些可以存储创建时间戳的东西 Thanks Set
  • 如何在 SQL Server 中连接

    我的数据库没有特定的列 因此我通过开关在查询中创建了一个列 我需要的是将此列与数据库中的另一列连接起来 select certificateDuration DurationType case when certificateDuratio
  • 在 DataView 的 RowFilter 中选择 DISTINCT

    我试图根据与另一个表的关系缩小 DataView 中的行范围 我使用的 RowFilter 如下 dv new DataView myDS myTable id IN SELECT DISTINCT parentID FROM myOthe
  • SQL:在行中保留计数或从数据库中选择计数

    示例 我有 2 张桌子 类别 Posts 在这样的类别中保留帖子编号是一个好方法吗 类别 id title posts 1 golf 50 2 soccer 90 posts id title category id 1 news 1 1
  • SQL WHERE 取决于星期几

    我需要检查不同日期的记录 具体取决于当前是一周中的哪一天 在周五 我需要它查看整个下周 直到下周日 在其他任何一天 它都应该检查当前周 直到下周日 我目前有以下内容 但由于语法错误而无法工作 是否可以做一个CASE WHEN里面一个WHER
  • MySQL 与 PostgreSQL JSON 搜索功能

    我一直在寻找一篇博客文章或一个功能矩阵 通过 JSON 功能对 MySQL 和 PostgreSQL 进行比较 我找到了一个好的Postgres 的特征矩阵 https www postgresql org about featuremat
  • MySql如何将varchar(纬度,经度)转换为十进制字段?

    在 mysql 中 我有一个 varchar 其中包含 Google 地图提供的纬度和经度 我需要能够基于边界框值进行查询 但不需要现在可用的地理特征 我正在尝试使用 varchar 中找到的 Decimal 值填充 2 个新的 Decim
  • 加载“mysql2”Active Record 适配器时出错

    我正在尝试升级我的应用程序 这是我在部署应用程序时遇到的错误 加载 mysql2 Active Record 适配器时出错 缺少它所依赖的宝石 无法激活mysql2 0 4 4 已经激活mysql2 0 3 21 确保所有依赖项都添加到 G
  • 如何从MySQL数据库获取今天/昨天的数据?

    我想从数据库中检索今天的数据 但我不知道该怎么做 我实际上想要获取不是过去 24 小时的数据 我只想获取今天的数据 因此基于实际服务器时间 我还想获取昨天的数据 谁能帮我怎么做 示例代码 SELECT id FROM folk WHERE
  • 使用外键将表拆分为两个表

    我有一张桌子 drupal comments 其中包括以下列 cid primary key uid foreign key to users table optional name varchar optional email varch
  • 如何使用 Connector/C++ 更新 MySQL 中的一行值

    我有一个简单的数据库 想要更新一个 int 值 我最初执行一个查询并返回一个 ResultSet sql ResultSet 对于结果集中的每个条目 我想修改表的一个特定列中的值 然后将其写回到数据库 更新该行中的该条目 根据文档 我不清楚
  • 如何使用java避免Mysql数据库中的“数据因列被截断”?

    在我的 Java 程序中 Hibernate Bean 类定义一列 例如 TimtableVO java Column name REPEAT DAYS private WeekdayType repeatDays hear Weekday
  • 从逗号分隔的字符串中删除重复项 (Amazon Redshift)

    我正在使用亚马逊红移 我在该字符串中有一个列存储为逗号分隔 例如Private Private Private Private Private Private United Healthcare 我想使用删除其中的重复项query 所以结果
  • 使用 order by 和 limit 从多个表中删除

    我试图从使用 ORDER BY DESC 和 LIMIT 有关系的两个表中删除 DELETE FROM my rel table AS t1 LEFT JOIN my photo table AS t2 ON t2 typeid t1 ty
  • 在查询中创建临时变量

    我希望能够在查询中创建一个临时变量 而不是存储过程或函数 它不需要声明和设置 这样我在调用它时就不需要传递查询参数 正在努力朝这个方向努力 Select field1 tempvariable 2 2 newlycreatedfield t
  • “完整性约束违规:1062 重复条目” - 但没有重复行

    我正在将应用程序从本机 mysqli 调用转换为 PDO 尝试将行插入具有外键约束的表时遇到错误 Note 这是一个简化的测试用例 不应复制 粘贴到生产环境中 InfoPHP 5 3 MySQL 5 4 首先 这是表格 CREATE TAB
  • 如何创建从表中最大值开始的 Oracle 序列?

    尝试在 Oracle 中创建一个以特定表中的最大值开始的序列 为什么这不起作用 CREATE SEQUENCE transaction sequence MINVALUE 0 START WITH SELECT MAX trans seq
  • MySQL - 连接 a 或 b

    假设我有一个TABLE a其中一个COLUMN data是一个join其他 2 张桌子 TABLE b and TABLE c 因为我想得到一个COLUMN info in b or c 事情是a data将匹配only with b da
  • 将redis数据移至MySQL的更快方法

    我们拥有庞大的购物和产品交易系统 我们在 MySQL 方面遇到了很多问题 因此经过几次研发后 我们计划使用 Redis 并开始将 Redis 集成到我们的系统中 继之前直接访问数据库之后 现在我们已经移动了Redis系统 用户购物车详情 关

随机推荐

  • 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时 需要借助临时表进行分