在开发数据库时,特别是写存储过程,遇到比较复杂的需求,使用临时表可以简化很多逻辑。曾经在一家互联网金融公司供职,公司数据组团队做数据清洗,写SQL脚本时,一个查询语句可以套到数层查询,甚至十几层。看起来几百行上千行的脚本,其实他只是一个查询,就是说是一个select基于另一个select的结果。这样层层叠叠,同时还包含了聚合、排序、关联、联合等,看起来是相当的费劲,头疼。
就如下列样式:

如同写实体表数据一样,可以通过INSERT INTO 关键字进行表插入数据操作。


# 第一种
# 写数据到临时表
INSERT INTO TempAsiaCountries
SELECT
`Code`,
`Name`,
`SurfaceArea`,
`Population`
FROM
country
WHERE
`Continent` = ‘Asia’;
# 查询临时表
SELECT *
FROM TempAsiaCountries;
# 第二种
# 查询数据并写到临时表中
CREATE TEMPORARY TABLE TempAsiaCountries
SELECT
`Code`,
`Name`,
`SurfaceArea`,
`Population`
FROM
country
WHERE
`Continent` = ‘Asia’;
# 删除临时表
DROP TABLE TempAsiaCountries;
临时表在使用上与实体表没任何区别,实事他们的区别也就是”临时“二字。临时表是在查询过程中依据需要创建,并在使用完后删除的表结构。表可以暂存于内存中,也可以暂存在硬盘上。
在SqlServer中的临时表操作有全局临时表和局部临时表区分,他们分别用**#表名和##表名**来表示,其中全局临时表并不会随着用户的退出而消失,而且其它用户也可使用。
在MySQL中似乎没有这个区分。
到此这篇关于MySQL临时表使用的文章就介绍到这了,更多相关MySQL临时表使用内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!