亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

MySQL臨時(shí)表的使用方法詳解

 更新時(shí)間:2022年09月18日 16:53:50   作者:麥田里走一夜  
在寫查詢時(shí)我們會(huì)經(jīng)常用到臨時(shí)表來(lái)存儲(chǔ)數(shù)據(jù),下面這篇文章主要給大家介紹了關(guān)于MySQL臨時(shí)表的使用方法,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下

1. 寫在前面的話

在開發(fā)數(shù)據(jù)庫(kù)時(shí),特別是寫存儲(chǔ)過(guò)程,遇到比較復(fù)雜的需求,使用臨時(shí)表可以簡(jiǎn)化很多邏輯。曾經(jīng)在一家互聯(lián)網(wǎng)金融公司供職,公司數(shù)據(jù)組團(tuán)隊(duì)做數(shù)據(jù)清洗,寫SQL腳本時(shí),一個(gè)查詢語(yǔ)句可以套到數(shù)層查詢,甚至十幾層??雌饋?lái)幾百行上千行的腳本,其實(shí)他只是一個(gè)查詢,就是說(shuō)是一個(gè)select基于另一個(gè)select的結(jié)果。這樣層層疊疊,同時(shí)還包含了聚合、排序、關(guān)聯(lián)、聯(lián)合等,看起來(lái)是相當(dāng)?shù)馁M(fèi)勁,頭疼。

就如下列樣式:

SELECT
	T1.A1,
	T1.A2,
	T1.A3...
FROM
	(
		SELECT
			T2.B1,
			T2.B2,
			T2.B3...
		FROM
			(
				SELECT
					...
				UNION ALL
					SELECT
						...)
					WHERE
						...
					GROUP BY
						...) T1,
						(
							SELECT
								T3.C1,
								T3.C2,
								T3.C3...
							FROM
								(
									SELECT
										...)
									WHERE
										...
									GROUP BY
										...) T3
									WHERE
										T1.A1 = T3.C1...

如果這里能使用臨時(shí)表,那么就會(huì)使邏輯清晰很多,查詢效率也會(huì)得到提升。比如在多處使用到同一個(gè)查詢的結(jié)果時(shí),就可以只執(zhí)行一次查詢,將結(jié)果保存為臨時(shí)表,在查詢過(guò)程中每次使用到時(shí),直接從臨時(shí)表查就可以了,不用每次使用都再去查詢一遍原始數(shù)據(jù),尤其是對(duì)于復(fù)雜關(guān)聯(lián)查詢結(jié)果。

當(dāng)時(shí)數(shù)據(jù)是來(lái)源于呼叫中心,每天都會(huì)產(chǎn)生幾百萬(wàn)行數(shù)據(jù),一個(gè)月就上億行的數(shù)據(jù)量,就當(dāng)時(shí)的機(jī)器性能基礎(chǔ)上,在這個(gè)數(shù)據(jù)量來(lái)做統(tǒng)計(jì)操作,如果沒(méi)有高效的腳本,是非常耗時(shí)間的。同時(shí),數(shù)據(jù)組職員并沒(méi)有專業(yè)數(shù)據(jù)庫(kù)設(shè)計(jì)能力。

本文以數(shù)據(jù)庫(kù)World為例進(jìn)行說(shuō)明。

2. 臨時(shí)表的使用

World數(shù)據(jù)庫(kù)中數(shù)據(jù)表country放著全世界國(guó)家的相關(guān)信息。

2.1 創(chuàng)建一個(gè)只存放亞洲國(guó)家信息的臨時(shí)表

2.1.1 創(chuàng)建臨時(shí)表

創(chuàng)建一個(gè)只存放亞洲國(guó)家信息的臨時(shí)表,命名為TempAsiaCountries。
這里臨時(shí)只取四個(gè)字段Code,Name,SufaceArea,Population,那么創(chuàng)建臨時(shí)表的腳本如下:

# 創(chuàng)建臨時(shí)表
CREATE TEMPORARY TABLE TempAsiaCountries (
	`Code` VARCHAR (10),
	`name` VARCHAR (30),
	`SufaceArea` NUMERIC,
	`Population` NUMERIC
);

創(chuàng)建完之后,會(huì)發(fā)現(xiàn)在數(shù)據(jù)庫(kù)的表目錄下并沒(méi)有這個(gè)表,因?yàn)楸硎桥R時(shí)的,所以不會(huì)出現(xiàn)在表目錄里。

2.1.2 向臨時(shí)表里寫數(shù)據(jù)

如同寫實(shí)體表數(shù)據(jù)一樣,可以通過(guò)INSERT INTO 關(guān)鍵字進(jìn)行表插入數(shù)據(jù)操作。

# 寫數(shù)據(jù)到臨時(shí)表
INSERT INTO TempAsiaCountries
SELECT
	`Code`,
	`Name`,
	`SurfaceArea`,
	`Population`
FROM
	country
WHERE
	`Continent` = 'Asia';

此時(shí),可以通過(guò)SELECT操作查詢臨時(shí)表里的數(shù)據(jù)。

2.2 在查詢過(guò)程中直接創(chuàng)建臨時(shí)表

在實(shí)際使用臨時(shí)表時(shí),可以更快速便捷的創(chuàng)建臨時(shí)表,如下腳本,直接以查詢結(jié)果創(chuàng)建臨時(shí)表的方法。

CREATE TEMPORARY TABLE TempAsiaCountries 
SELECT
	`Code`,
	`Name`,
	`SurfaceArea`,
	`Population`
FROM
	country
WHERE
	`Continent` = 'Asia';

2.3 查詢臨時(shí)表中的數(shù)據(jù)

對(duì)臨時(shí)表的查詢操作與實(shí)體表一樣,如下是查詢前文中所創(chuàng)建的臨時(shí)表中的數(shù)據(jù)

# 查詢臨時(shí)表
SELECT *
FROM TempAsiaCountries;

可以看到查詢結(jié)果

2.4 刪除臨時(shí)表

# 刪除臨時(shí)表
DROP TABLE TempAsiaCountries;

此時(shí)再查,就會(huì)返回表不存在的結(jié)果

3. 以上操作的全部代碼

# 創(chuàng)建臨時(shí)表
CREATE TEMPORARY TABLE TempAsiaCountries (
	`Code` VARCHAR (10),
	`name` VARCHAR (30),
	`SufaceArea` NUMERIC,
	`Population` NUMERIC
);

# 第一種
# 寫數(shù)據(jù)到臨時(shí)表
INSERT INTO TempAsiaCountries
SELECT
	`Code`,
	`Name`,
	`SurfaceArea`,
	`Population`
FROM
	country
WHERE
	`Continent` = 'Asia';

# 查詢臨時(shí)表
SELECT *
FROM TempAsiaCountries;

# 第二種
# 查詢數(shù)據(jù)并寫到臨時(shí)表中
CREATE TEMPORARY TABLE TempAsiaCountries 
SELECT
	`Code`,
	`Name`,
	`SurfaceArea`,
	`Population`
FROM
	country
WHERE
	`Continent` = 'Asia';

# 刪除臨時(shí)表
DROP TABLE TempAsiaCountries;


總結(jié)

臨時(shí)表在使用上與實(shí)體表沒(méi)任何區(qū)別,實(shí)事他們的區(qū)別也就是”臨時(shí)“二字。臨時(shí)表是在查詢過(guò)程中依據(jù)需要?jiǎng)?chuàng)建,并在使用完后刪除的表結(jié)構(gòu)。表可以暫存于內(nèi)存中,也可以暫存在硬盤上。

在SqlServer中的臨時(shí)表操作有全局臨時(shí)表和局部臨時(shí)表區(qū)分,他們分別用**#表名##表名**來(lái)表示,其中全局臨時(shí)表并不會(huì)隨著用戶的退出而消失,而且其它用戶也可使用。

在MySQL中似乎沒(méi)有這個(gè)區(qū)分。

到此這篇關(guān)于MySQL臨時(shí)表使用的文章就介紹到這了,更多相關(guān)MySQL臨時(shí)表使用內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • mysql通過(guò)INSERT IGNORE INTO插入拼音字符無(wú)效問(wèn)題及解決

    mysql通過(guò)INSERT IGNORE INTO插入拼音字符無(wú)效問(wèn)題及解決

    這篇文章主要介紹了mysql通過(guò)INSERT IGNORE INTO插入拼音字符無(wú)效問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • Windows環(huán)境下重置mysql密碼操作命令

    Windows環(huán)境下重置mysql密碼操作命令

    Windows XP系統(tǒng)、xampp集成環(huán)境如何重置mysql密碼,接下來(lái)為大家詳細(xì)介紹下,感興趣的各位可以參考下哈,希望可以幫助到你們
    2013-03-03
  • 使MySQL能夠存儲(chǔ)emoji表情字符的設(shè)置教程

    使MySQL能夠存儲(chǔ)emoji表情字符的設(shè)置教程

    這篇文章主要介紹了使MySQL能夠存儲(chǔ)emoji表情字符的設(shè)置教程,關(guān)鍵在于utf8mb4字符集的設(shè)置,需要的朋友可以參考下
    2015-12-12
  • Linux 安裝JDK Tomcat MySQL的教程(使用Mac遠(yuǎn)程訪問(wèn))

    Linux 安裝JDK Tomcat MySQL的教程(使用Mac遠(yuǎn)程訪問(wèn))

    這篇文章主要介紹了Linux 安裝JDK Tomcat MySQL(使用Mac遠(yuǎn)程訪問(wèn)),本文圖文并茂給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2018-06-06
  • MySQL delete刪除數(shù)據(jù)后釋放磁盤空間的操作方法

    MySQL delete刪除數(shù)據(jù)后釋放磁盤空間的操作方法

    這篇文章主要介紹了MySQL delete刪除數(shù)據(jù)后,釋放磁盤空間,文中給大家介紹了優(yōu)化表空間的多種方法,每種方法給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2022-05-05
  • MySQL中關(guān)于表的約束

    MySQL中關(guān)于表的約束

    在MySQL中,約束用于定義表的規(guī)則和限制,確保數(shù)據(jù)的準(zhǔn)確性和可靠性,主要類型包括NOT NULL、DEFAULT、PRIMARY KEY、AUTO_INCREMENT、UNIQUE KEY、FOREIGN KEY、CHECK和INDEX等,NOT NULL約束確保列不能存儲(chǔ)NULL值;DEFAULT設(shè)置默認(rèn)值
    2024-09-09
  • MySQL基本命令、常用命令總結(jié)

    MySQL基本命令、常用命令總結(jié)

    這篇文章主要介紹了MySQL基本命令、常用命令總結(jié),需要的朋友可以參考下
    2014-03-03
  • MySQL中主鍵默認(rèn)有索引嗎

    MySQL中主鍵默認(rèn)有索引嗎

    MySQL主鍵默認(rèn)是有索引的,在MySQL中,主鍵是用來(lái)唯一標(biāo)識(shí)表中每一行數(shù)據(jù)的字段或字段組合,主鍵的作用是保證數(shù)據(jù)的唯一性,并且可以提高數(shù)據(jù)的查詢效率,需要的朋友可以參考下
    2023-10-10
  • MySQL如何導(dǎo)入csv格式數(shù)據(jù)文件解決方案

    MySQL如何導(dǎo)入csv格式數(shù)據(jù)文件解決方案

    本文將詳細(xì)介紹MySQL如何導(dǎo)入csv格式數(shù)據(jù)文件并提供詳細(xì)解決方案,需要了解的朋友可以參考下
    2012-11-11
  • MySQL的索引失效的原因?qū)嵗敖鉀Q方案

    MySQL的索引失效的原因?qū)嵗敖鉀Q方案

    這篇文章主要討論了MySQL索引失效的常見(jiàn)原因及其解決方案,它涵蓋了數(shù)據(jù)類型不匹配、隱式轉(zhuǎn)換、函數(shù)或表達(dá)式、范圍查詢、LIKE查詢、OR條件、全表掃描、索引選擇性低、覆蓋索引不足和統(tǒng)計(jì)信息不準(zhǔn)確等問(wèn)題,感興趣的朋友一起看看吧
    2024-12-12

最新評(píng)論