MySQL临时表
在MySQL中,临时表是一种特殊类型的表,它允许您存储一个临时结果集,可以在单个会话中多次重用。
当使用JOIN子句查询需要单个SELECT语句的数据是不可能或遇到瓶颈的时候,临时表非常方便。在这种情况下,我们就可以使用临时表来存储直接结果,并使用另一个查询来处理它。临时表只在当前连接可见,当关闭连接时,Mysql会自动删除表并释放所有空间。
MySQL临时表具有以下特殊功能:
使用CREATE TEMPORARY TABLE语句创建临时表。请注意,在CREATE和TABLE关键字之间添加TEMPORARY关键字。
当会话结束或连接终止时,MySQL会自动删除临时表。当您不再使用临时表时,也可以使用DROP TABLE语句来显式删除临时表。
一个临时表只能由创建它的客户机访问。不同的客户端可以创建具有相同名称的临时表,而不会导致错误,因为只有创建临时表的客户端才能看到它。但是,在同一个会话中,两个临时表不能共享相同的名称。
临时表可以与数据库中的普通表具有相同的名称。例如,如果在示例数据库(yiibaidb)中创建一个名为employees的临时表,则现有的employees表将变得无法访问。对employees表发出的每个查询现在都是指employees临时表。当删除您临时表时,永久employees表可以再次访问。
创建MySQL临时表
要创建临时表,只需要将关键字添加到语句的中间。
例如:
当你使用 SHOW TABLES命令显示数据表列表时,你将无法看到 SalesSummary表。
如果你退出当前MySQL会话,再使用 SELECT命令来读取原先创建的临时表数据,那你会发现数据库中没有该表的存在,因为在你退出时该临时表已经被销毁了。
删除MySQL 临时表
默认情况下,当你断开与数据库的连接后,临时表就会自动被销毁。当然你也可以在当前MySQL会话使用 DROP TABLE 命令来手动删除临时表。
以下是手动删除临时表的实例:
ps:用查询直接创建临时表的方式:
这里有之前创建的表
实际操作
MySQL复制表
什么时候我们会用到复制表?例如:我现在对一张表进行操作,但是怕误删数据,所以在同一个数据库中建一个表结构一样,表数据也一样的表,以作备份。
复制表结构
方法一:
仅复制表结构,不复制表内容。
1、查看旧表结构
2、使用like复制表并查看结构
3、查看表数据
4、导入数据
方法二:
复制部分表结构,复制表内容。
1、使用select复制表并查看结构
2、查看新建表b的所有内容
ps:通过和原表的结构对比就可以看到,因为用select方法只复制字段属性,其它的主键、索引、表备注、存储引擎都没有复制。
部分字段复制方法
当然了,有时候我们可能并不需要完全复制表,只要复制部分字段和数据,那么可以按如下操作:
方法一(仅复制表部分字段结构和内容)
例如:
1、复制表
2、查看表结构
3、查看表数据
历史文章及资料
领取专属 10元无门槛券
私享最新 技术干货