mysql臨時表(temporary?table)使用方法詳解
概述
***1. 作用:臨時表用來保存一些 '臨時數(shù)據(jù)'
2. 注意:
(1) 臨時表只在 '當前連接' 可見,當關(guān)閉連接時,Mysql 會 '自動刪除表數(shù)據(jù)及表結(jié)構(gòu)'
(2) 臨時表 和 普通表 用法一樣,用關(guān)鍵字 'temporary' 予以區(qū)別***
臨時表
1、創(chuàng)建一個臨時表 test
命令:
創(chuàng)建臨時表test,保存所有ID信息
CREATE TEMPORARY TABLE test( id int(2) );
運行結(jié)果:l臨時表test創(chuàng)建成功

INSERT INTO test values (10);
運行結(jié)果:添加數(shù)據(jù)成功

select * from test
運行結(jié)果:臨時表中數(shù)據(jù)查詢成功

使用命令查看數(shù)據(jù)庫中是否存在創(chuàng)建的臨時表:
show tables

**總結(jié):臨時表是一張表,用來臨時保存一些數(shù)據(jù)。它只對創(chuàng)建它的會話可見。當會話結(jié)束時,MySQL自動刪除臨時表(表結(jié)構(gòu)和表數(shù)據(jù)庫),并且臨時表不會存進mysql中**
2、使用相同的名字創(chuàng)建一個普通表和臨時表
會話可以創(chuàng)建一個和已有的普通表名字相同的臨時表。在這種情況下,該會話只能看到臨時表而看不見同名的普通表。當臨時表被刪除后,才可以看到普通表
2、1創(chuàng)建普通表;
CREATE TABLE testable (c1 INT); INSERT INTO testable VALUES(1);

創(chuàng)建的普通表已經(jīng)存在,表結(jié)構(gòu),表數(shù)據(jù)都可以正常查詢。
2、2 創(chuàng)建與普通表相同的臨時表;
CREATE TEMPORARY TABLE testable(c1 INT,c2 INT); INSERT INTO testable VALUES(4,10); SELECT * FROM testable;

與普通表名稱相同的臨時表創(chuàng)建成功,查詢返回的表結(jié)構(gòu)、表數(shù)據(jù)都是臨時表的結(jié)果,普通表的信息無返回結(jié)果,
刪除臨時表,普通表的才能恢復正常:

刪除臨時表,此時查詢返回的結(jié)果就是普通表的信息
總結(jié):會話可以創(chuàng)建一個和已有的普通表名字相同的臨時表。在這種情況下,該會話只能看到臨時表而 看不見同名的普通表。當臨時表被刪除后,才可以看到普通表
附:臨時表的作用和優(yōu)勢
1、查詢優(yōu)化
臨時表能夠改善復雜查詢的性能和可讀性。例如,當需要執(zhí)行多個依賴于前一個查詢結(jié)果的SQL查詢時,可以使用臨時表來存儲每個查詢步驟的結(jié)果。這樣做減少了重復計算和提高了代碼整潔度。
2、數(shù)據(jù)整合
在需要從多個數(shù)據(jù)源匯總數(shù)據(jù)時,臨時表可以起到橋梁的作用。它們使得數(shù)據(jù)格式統(tǒng)一化、易于處理。
3、處理用戶會話相關(guān)數(shù)據(jù)
在Web應用中,例如在線購物網(wǎng)站,臨時表可用于存儲用戶會話期間的狀態(tài)信息,比如購物車內(nèi)容。
4、批量數(shù)據(jù)處理
在需要對大量數(shù)據(jù)進行更新或清理時,臨時表可以作為緩沖層,減少直接對生產(chǎn)環(huán)境的影響。
例如:公司需要生成一個報告,其中包含來自銷售和財務兩個部門數(shù)據(jù)庫的數(shù)據(jù)。這兩個數(shù)據(jù)庫有不同的結(jié)構(gòu),使用臨時表可以先將數(shù)據(jù)整合起來。
-- 從銷售數(shù)據(jù)庫創(chuàng)建一個臨時表 CREATE TEMPORARY TABLE temp_sales_data AS SELECT product_id, SUM(quantity) AS total_quantity FROM sales_database.sales GROUP BY product_id; -- 從財務數(shù)據(jù)庫插入數(shù)據(jù)到臨時表 INSERT INTO temp_sales_data (product_id, total_quantity) SELECT product_code, SUM(sold_units) AS total_quantity FROM finance_database.financial_records GROUP BY product_code; -- 使用整合后的數(shù)據(jù)生成報告 SELECT product_id, total_quantity FROM temp_sales_data;
總結(jié):
1.臨時表是一張表,用來臨時保存一些數(shù)據(jù)。它只對創(chuàng)建它的會話可見。當會話結(jié)束時,MySQL自動刪除臨時表(表結(jié)構(gòu)和表數(shù)據(jù)庫),并且臨時表不會存進mysql中。
2.會話可以創(chuàng)建一個和已有的普通表名字相同的臨時表。在這種情況下,該會話只能看到臨時表而 看不見同名的普通表。當臨時表被刪除后,才可以看到普通表`
到此這篇關(guān)于mysql臨時表(temporary table)使用方法詳解的文章就介紹到這了,更多相關(guān)mysql臨時表詳解內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
MySQL數(shù)據(jù)恢復工具:ibd2sql離線解析.ibd文件轉(zhuǎn)換為SQL
ibd2sql是純Python3工具,用于離線解析MySQL?InnoDB?IBD文件生成SQL語句,支持多版本和復雜結(jié)構(gòu),可恢復誤刪數(shù)據(jù),優(yōu)點包括無依賴、靈活輸出,但存在性能慢、數(shù)據(jù)完整性風險及資源消耗大的缺點,適用于數(shù)據(jù)恢復、遷移和審計場景2025-06-06
MySQL中FIND_IN_SET(),IN( )和?LIKE區(qū)別小結(jié)
在MySQL中,FIND_IN_SET()、LIKE和IN用于字符串和值的匹配查找,FIND_IN_SET()適用于逗號分隔的字符串列表,LIKE用于模糊匹配,IN用于離散值列表,下面就來介紹了一下具體的區(qū)別,感興趣的可以了解一下2026-02-02
MySQL腳本轉(zhuǎn)換為StarRocks的完整指南
本指南詳細說明如何將MySQL數(shù)據(jù)庫腳本轉(zhuǎn)換為StarRocks兼容的格式,包括語法差異、數(shù)據(jù)類型映射、最佳實踐和常見問題解決方案,需要的朋友可以參考下2025-09-09

