mysql臨時表(temporary?table)使用方法詳解
概述
***1. 作用:臨時表用來保存一些 '臨時數(shù)據(jù)'
2. 注意:
(1) 臨時表只在 '當(dāng)前連接' 可見,當(dāng)關(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)建它的會話可見。當(dāng)會話結(jié)束時,MySQL自動刪除臨時表(表結(jié)構(gòu)和表數(shù)據(jù)庫),并且臨時表不會存進mysql中**
2、使用相同的名字創(chuàng)建一個普通表和臨時表
會話可以創(chuàng)建一個和已有的普通表名字相同的臨時表。在這種情況下,該會話只能看到臨時表而看不見同名的普通表。當(dā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é)果,
刪除臨時表,普通表的才能恢復(fù)正常:
刪除臨時表,此時查詢返回的結(jié)果就是普通表的信息
總結(jié):會話可以創(chuàng)建一個和已有的普通表名字相同的臨時表。在這種情況下,該會話只能看到臨時表而 看不見同名的普通表。當(dāng)臨時表被刪除后,才可以看到普通表
附:臨時表的作用和優(yōu)勢
1、查詢優(yōu)化
臨時表能夠改善復(fù)雜查詢的性能和可讀性。例如,當(dāng)需要執(zhí)行多個依賴于前一個查詢結(jié)果的SQL查詢時,可以使用臨時表來存儲每個查詢步驟的結(jié)果。這樣做減少了重復(fù)計算和提高了代碼整潔度。
2、數(shù)據(jù)整合
在需要從多個數(shù)據(jù)源匯總數(shù)據(jù)時,臨時表可以起到橋梁的作用。它們使得數(shù)據(jù)格式統(tǒng)一化、易于處理。
3、處理用戶會話相關(guān)數(shù)據(jù)
在Web應(yīng)用中,例如在線購物網(wǎng)站,臨時表可用于存儲用戶會話期間的狀態(tài)信息,比如購物車內(nèi)容。
4、批量數(shù)據(jù)處理
在需要對大量數(shù)據(jù)進行更新或清理時,臨時表可以作為緩沖層,減少直接對生產(chǎn)環(huán)境的影響。
例如:公司需要生成一個報告,其中包含來自銷售和財務(wù)兩個部門數(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; -- 從財務(wù)數(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)建它的會話可見。當(dāng)會話結(jié)束時,MySQL自動刪除臨時表(表結(jié)構(gòu)和表數(shù)據(jù)庫),并且臨時表不會存進mysql中。
2.會話可以創(chuàng)建一個和已有的普通表名字相同的臨時表。在這種情況下,該會話只能看到臨時表而 看不見同名的普通表。當(dāng)臨時表被刪除后,才可以看到普通表`
到此這篇關(guān)于mysql臨時表(temporary table)使用方法詳解的文章就介紹到這了,更多相關(guān)mysql臨時表詳解內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
mysql數(shù)據(jù)庫您要的常見日期查詢方法總結(jié)
這篇文章主要介紹了MySQL中常用日期查詢的20種方法,包括查詢今天、昨天、近7天、近30天等數(shù)據(jù),以及查詢特定日期的周、月、季度和年份數(shù)據(jù),需要的朋友可以參考下2025-02-02深入解析MySQL索引數(shù)據(jù)結(jié)構(gòu)
什么是索引?索引就是排好序的數(shù)據(jù)結(jié)構(gòu),可以幫助我們快速的查找到數(shù)據(jù),下面這篇文章主要給大家介紹了關(guān)于MySQL索引數(shù)據(jù)結(jié)構(gòu)的相關(guān)資料,需要的朋友可以參考下2021-10-10SUSE Linux下源碼編譯方式安裝MySQL 5.6過程分享
這篇文章主要介紹了SUSE Linux下源碼編譯方式安裝MySQL 5.6過程分享,本文使用SUSE Linux Enterprise Server 10 SP3 (x86_64)系統(tǒng),需要的朋友可以參考下2014-09-09MySQL添加外鍵時報錯:1215 Cannot add the foreign key constraint的解決方法
大家都知道MySQL中經(jīng)常會需要創(chuàng)建父子表之間的約束,這個約束是需要建立在主外鍵基礎(chǔ)之上的,最近在MySQL添加外鍵時發(fā)現(xiàn)了一個報錯:1215 Cannot add the foreign key constraint,所以這篇文章就給大家介紹了如何解決在創(chuàng)建主外鍵約束過程中碰到的這個問題。2016-11-11mysql not in、left join、IS NULL、NOT EXISTS 效率問題記錄
mysql not in、left join、IS NULL、NOT EXISTS 效率問題記錄,需要的朋友可以參考下。2011-12-12