泪伤荡的编程指南 泪伤荡的编程指南
首页
  • 基础篇
  • 集合篇
  • 并发篇
  • JVM篇
  • 新特性
  • 进阶篇
  • 网络
  • 操作系统
  • 数据结构与算法
  • 硬件
  • 基础篇
  • MySql
  • Oracle
  • PostgreSQL
  • 达梦
  • Redis
  • Mongodb
  • Hive
  • 数据库比较
  • Spring
  • SpringMvc
  • SpringBoot
  • Hibernate
  • iBatis
  • Mybatis
  • Mybatis-plus
  • Mybatis-plus-join
  • 各个框架对比
  • UML画图
  • 设计须知
  • 开发流程
  • 开发理论
  • 架构体系
  • 设计模式
  • 开源知识
  • 分布式解决方案
  • SpringCloud
  • API网关
  • 注册中心
  • 配置中心
  • 服务调用
  • 分布式事务
  • 消息队列
  • 调度作业
  • 链路追踪
  • 服务保障
  • 搜索引擎Elk
  • 安全框架
  • 监控体系
  • 部署容器
  • Netty
  • Tomcat
  • Nginx
  • 图片云存储
  • 云存储
  • 虚拟机Linux
  • 项目部署
  • 容器部署
  • 开发工具篇
  • 工具库篇
  • 开发技巧篇
  • 工具类系列
  • Bug记录仓库
  • 随笔
  • HTML与CSS
  • JS学习
  • Vue3入门
  • Vue3进阶
  • 黑马Vue3
  • 视频网站
  • 音乐网站
  • 商城网站
  • 论坛网站
  • scrm项目
  • Yudao-cloud
  • RuoYi-Vu-cloud
  • 博客搭建
  • 网站收藏箱
  • 断墨寻径摘录
  • 费曼学习法
  • Java术语
  • 命名英语
  • 业务英语
  • 表字段英语
  • 包名英语
Github (opens new window)
首页
  • 基础篇
  • 集合篇
  • 并发篇
  • JVM篇
  • 新特性
  • 进阶篇
  • 网络
  • 操作系统
  • 数据结构与算法
  • 硬件
  • 基础篇
  • MySql
  • Oracle
  • PostgreSQL
  • 达梦
  • Redis
  • Mongodb
  • Hive
  • 数据库比较
  • Spring
  • SpringMvc
  • SpringBoot
  • Hibernate
  • iBatis
  • Mybatis
  • Mybatis-plus
  • Mybatis-plus-join
  • 各个框架对比
  • UML画图
  • 设计须知
  • 开发流程
  • 开发理论
  • 架构体系
  • 设计模式
  • 开源知识
  • 分布式解决方案
  • SpringCloud
  • API网关
  • 注册中心
  • 配置中心
  • 服务调用
  • 分布式事务
  • 消息队列
  • 调度作业
  • 链路追踪
  • 服务保障
  • 搜索引擎Elk
  • 安全框架
  • 监控体系
  • 部署容器
  • Netty
  • Tomcat
  • Nginx
  • 图片云存储
  • 云存储
  • 虚拟机Linux
  • 项目部署
  • 容器部署
  • 开发工具篇
  • 工具库篇
  • 开发技巧篇
  • 工具类系列
  • Bug记录仓库
  • 随笔
  • HTML与CSS
  • JS学习
  • Vue3入门
  • Vue3进阶
  • 黑马Vue3
  • 视频网站
  • 音乐网站
  • 商城网站
  • 论坛网站
  • scrm项目
  • Yudao-cloud
  • RuoYi-Vu-cloud
  • 博客搭建
  • 网站收藏箱
  • 断墨寻径摘录
  • 费曼学习法
  • Java术语
  • 命名英语
  • 业务英语
  • 表字段英语
  • 包名英语
Github (opens new window)
  • 基础篇

    • 数据库基础知识小结
    • NoSQL基础知识小结
    • 字符集详解
  • Mysql

    • MySQL基础小结
    • 索引篇
    • 思维导图
    • 数据库优化
    • 临时表
      • 临时表的特性
      • 应用场景
      • 基础操作
        • 创建临时表
        • 插入数据到临时表
        • 查询临时表
        • 修改临时表
        • 删除临时表
      • 具体示例
      • 注意事项
      • 学习参考
    • 实战篇

      • 日常小记
      • JOIN 解析
      • 执行计划解析
      • 内置函数小记
      • JSON字段处理
      • 时间字段的处理
      • 一文教你如何删除重复记录
      • exists语法解析
    • 读高性能MySQL笔记

      • MySQL架构
  • 达梦DM

    • DM基础入门
    • DM数据类型
    • DM_SQL语言支持的表达式
    • DM表结构修改
  • Redis

    • Redis总结
    • Redis小记
  • 数据库
  • Mysql
泪伤荡
2024-05-08
目录

临时表

# 临时表

# 临时表的特性

  • 临时表利用了数据库临时表空间,由数据库系统自动进行维护,因此节省了物理表空间。并且由于临时表空间一般利用虚拟内存,大大减少了硬盘的 I/O 次数,因此也提高了系统效率。
  • 临时表只在创建它的会话(session)生命周期内存在。
  • 当创建该临时表的会话结束时(比如客户端断开连接或事务结束),临时表会被自动删除,不必记得用完后删除数据。
  • 对其他会话是不可见的,保证了数据的隔离性。

sql server 有 本地临时表 和 全局临时表 两个概念

# 应用场景

临时表可以用于多种场景,如存储查询结果、过滤数据、处理大量数据等。在实际应用中,临时表可以显著提高查询效率,因为它避免了每次查询都从原始表中提取数据的需要。

# 基础操作

# 创建临时表

写法一

要创建一个临时表,可以使用 CREATE TEMPORARY TABLE 语句。例如:

CREATE TEMPORARY TABLE temp_table_name (
  column1 datatype,
  column2 datatype,
  ...
);
1
2
3
4
5

这里的 temporary_table 是临时表的名称,后面的括号内列出了表中的列及其数据类型。

写法二

可以简写为:

CREATE TEMPORARY TABLE temp_table_name AS
SELECT column1, column2, ...
FROM source_table
WHERE condition;
1
2
3
4

# 插入数据到临时表

INSERT INTO temp_table_name (column1, column2, ...)
VALUES (value1, value2, ...);
1
2

# 查询临时表

SELECT * FROM temp_table_name;
1

# 修改临时表

临时表的修改操作与普通表类似,可以使用 ALTER TABLE 命令。

ALTER TABLE temp_table_name
ADD COLUMN new_column datatype;
1
2

# 删除临时表

虽然临时表会在会话结束时自动删除,但有时候可能需要手动删除它们。这可以通过 DROP TEMPORARY TABLE 命令来实现。例如:

DROP TEMPORARY TABLE temporary_table;
1

这个命令会立即删除指定的临时表,并释放其占用的空间。

# 具体示例

-- 创建临时表
CREATE TEMPORARY TABLE temp_orders AS
SELECT * FROM orders WHERE order_date >= '2023-01-01';

-- 查询临时表
SELECT * FROM temp_orders;

-- 插入数据到临时表
INSERT INTO temp_orders (order_id, customer_id, order_date)
VALUES (1001, 1, '2023-01-05');

-- 查询临时表
SELECT * FROM temp_orders;

-- 删除临时表
DROP TEMPORARY TABLE IF EXISTS temp_orders;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

# 注意事项

  • 版本兼容性:MySQL 的临时表功能从 3.23 版本开始支持。如果使用的 MySQL 版本低于 3.23,则无法使用临时表。
  • 性能影响:虽然临时表可以提高查询效率,但它们也会增加内存的使用,因此在处理大型数据集时应谨慎使用。
  • 安全性:由于临时表在会话结束时自动删除,因此不需要担心数据泄露的问题。但是,为了防止意外的数据丢失,建议在创建临时表之前进行充分的测试。

# 学习参考

  • Sql Server 创建临时表_sql创建临时表-CSDN博客 (opens new window)
  • SQL高级知识——临时表 - 知乎 (zhihu.com) (opens new window)
  • MySQL 临时表 | 菜鸟教程 (runoob.com) (opens new window)
上次更新: 2024/10/26 02:01:17
数据库优化
日常小记

← 数据库优化 日常小记→

Theme by Vdoing | Copyright © 2024-2025 泪伤荡 | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式