认识MySQL数据库中的临时表

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介: 认识MySQL数据库中的临时表。

临时表的分类
按照创建的方式不同,MySQL的临时表可以分为两种,一种是用户使用CREATE TEMPORARY TABLE创建的,称为外部临时表,一种是因UNION、ORDER BY、GROUP BY、DISTINCT等复杂SQL操作产生的,称为内部临时表。
临时表的创建
临时表的创建的语法格式与创建普通表的语法格式类似,不同的之处在于增加了关键字TEMPORARY,具体语法如下所示。
CREATE TEMPORARY TABLE 表名(列的定义...);
临时表的查看
由于临时表的特殊性,因此使用SHOW TABLES不会列出临时表,但是可以使用SHOW CREATE TABLE或DESC命令查看临时表结构的详细信息,这两条命令的语法格式如下所示。
SHOW CREATE TABLE 临时表名
DESC 临时表名
临时表的删除
默认情况下,虽然当你断开与数据库的连接后,临时表就会自动被销毁,但是用户也可以在当前MySQL会话中使用 DROP TABLE 命令来手动删除临时表,删除临时表的语法与删除普通表的语法相同,具体格式如下。
DROP [TEMPORARY] TABLE 临时表名
临时表在MySQL中虽然应用的场景很多,但是在使用的过程还应该注意以下的一些限制。
1) 临时表在 memory、myisam、merge或者innodb上使用,并且不支持mysql cluster(簇)。
2)一个临时表只能被创建它的会话访问,对其他线程不可见。
3) 临时表名可以与普通表相同,但此时使用show create table 语句,以及增删改查语句访问的都是临时表,直到临时表被释放同名的普通表才可见。
4) show tables语句不会列出临时表,在information_schema中也不存在临时表信息。
5) 不能使用rename来重命名临时表。但是可以alter table rename代替。
6) 可以复制临时表得到一个新的临时表。
7) 但在同一个query语句中,相同的临时表只能出现一次。
8) 相同临时表不能在存储函数中出现多次。

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
7月前
|
存储 关系型数据库 MySQL
轻松入门MySQL:优化复杂查询,使用临时表简化数据库查询流程(13)
轻松入门MySQL:优化复杂查询,使用临时表简化数据库查询流程(13)
227 0
|
SQL Oracle 关系型数据库
Oracle 数据库利用sql语句判断某个表是否是临时表实例演示,达梦数据库查询出所有临时表
Oracle 数据库利用sql语句判断某个表是否是临时表实例演示,达梦数据库查询出所有临时表
857 0
Oracle 数据库利用sql语句判断某个表是否是临时表实例演示,达梦数据库查询出所有临时表
|
6月前
|
存储 监控 关系型数据库
解密MySQL中的临时表:探究临时表的神奇用途
解密MySQL中的临时表:探究临时表的神奇用途
661 3
|
7月前
|
自然语言处理 监控 关系型数据库
mysql造数据占用临时表空间
【5月更文挑战第20天】MySQL在处理复杂查询时可能使用临时表,可能导致性能下降。临时表用于排序、分组和连接操作。常见问题包括内存限制、未优化的查询、数据类型不当和临时表清理。避免过度占用的策略包括优化查询、调整系统参数、优化数据类型和事务管理。使用并行查询、分区表和监控工具也能帮助管理临时表空间。通过智能问答工具如通义灵码,可实时续写SQL和获取优化建议。注意监控`Created_tmp_tables`和`Created_tmp_disk_tables`以了解临时表使用状况。
448 5
|
存储 关系型数据库 MySQL
Mysql的临时表
MySQL中的临时表是一种特殊类型的表,它仅在当前数据库会话中存在,并在会话结束时自动被删除。临时表的作用是存储临时数据,通常用于复杂的查询、数据处理或临时存储计算结果。
123 0
|
7月前
|
存储 安全 关系型数据库
MySQL 临时表的用法和特性
MySQL 临时表的用法和特性
|
7月前
|
SQL 存储 关系型数据库
认识MySQL数据库中的临时表
认识MySQL数据库中的临时表。
72 4
|
7月前
|
前端开发 关系型数据库 MySQL
MYSQL基础知识之【临时表】
MYSQL基础知识之【临时表】
72 0
|
存储 关系型数据库 MySQL
MySQL的临时表以及视图与存储过程、触发器等功能概念详细解释说明以及它们的使用方法举例?
MySQL的临时表以及视图与存储过程、触发器等功能概念详细解释说明以及它们的使用方法举例?
|
SQL 关系型数据库 MySQL
MySQL - WITH...AS 创建临时表复用子查询
MySQL - WITH...AS 创建临时表复用子查询
1094 0

推荐镜像

更多
下一篇
DataWorks