簡(jiǎn)單了解MySQL union all與union的區(qū)別
union 是對(duì)數(shù)據(jù)進(jìn)行并集操作,不包括重復(fù)行,同時(shí)進(jìn)行默認(rèn)排序Union all 是對(duì)數(shù)據(jù)進(jìn)行并集操作,包括重復(fù)行,不進(jìn)行排序舉例說(shuō)明:
創(chuàng)建數(shù)據(jù)庫(kù)表:
CREATE TABLE `t_demo` ( `id` int(32) NOT NULL, `name` varchar(255) DEFAULT NULL, `age` int(2) DEFAULT NULL, `num` int(3) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
復(fù)制此表:
CREATE TABLE `t_demo_copy` ( `id` int(32) NOT NULL, `name` varchar(255) DEFAULT NULL, `age` int(2) DEFAULT NULL, `num` int(3) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
加入數(shù)據(jù):
INSERT INTO `t_demo` VALUES ('1', '張三', '21', '69'); INSERT INTO `t_demo` VALUES ('2', '李四', '22', '98'); INSERT INTO `t_demo` VALUES ('3', '王五', '20', '54'); INSERT INTO `t_demo` VALUES ('4', '趙甜', '22', '80'); INSERT INTO `t_demo_copy` VALUES ('1', '張三', '21', '69'); INSERT INTO `t_demo_copy` VALUES ('2', '豬八戒', '22', '98'); INSERT INTO `t_demo_copy` VALUES ('3', '王五', '20', '54'); INSERT INTO `t_demo_copy` VALUES ('4', '趙甜', '22', '80'); INSERT INTO `t_demo_copy` VALUES ('5', '孫悟空', '22', '100'); INSERT INTO `t_demo_copy` VALUES ('6', '李四', '24', '99');
MySQL中的UNION
SELECT * FROM t_demo UNION SELECT * FROM t_demo_copy
查詢結(jié)果:
我們從上面的查詢數(shù)據(jù)可以發(fā)現(xiàn):
UNION在進(jìn)行表鏈接后會(huì)篩選掉重復(fù)的記錄,對(duì)所產(chǎn)生的結(jié)果集進(jìn)行排序運(yùn)算,刪除重復(fù)的記錄再返回結(jié)果。
MySQL中的UNION ALL
SELECT * FROM t_demo UNION ALL SELECT * FROM t_demo_copy
查詢結(jié)果:
從上面數(shù)據(jù)我們可以看到:
UNION ALL只是簡(jiǎn)單的將兩個(gè)結(jié)果合并后就返回。如果返回的兩個(gè)結(jié)果集中有重復(fù)的數(shù)據(jù),那么返回的結(jié)果集就會(huì)包含重復(fù)的數(shù)據(jù)了。
效率:
從效率上說(shuō),UNION ALL 要比UNION快很多,所以,如果可以確認(rèn)合并的兩個(gè)結(jié)果集中不包含重復(fù)數(shù)據(jù)且不需要排序時(shí)的話,那么就使用UNION ALL。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- MySQL中關(guān)鍵字UNION和UNION ALL的區(qū)別
- MySQL之union和union all的使用及區(qū)別說(shuō)明
- 簡(jiǎn)單聊一聊SQL中的union和union?all
- 帶例子詳解Sql中Union和Union?ALL的區(qū)別
- MySQL系列理解運(yùn)用union(all)與limit及exists關(guān)鍵字教程
- MySQL中UNION與UNION ALL的基本使用方法
- 淺析mysql union和union all
- 5分鐘了解MySQL5.7中union all用法的黑科技
- SQL語(yǔ)句之Union和Union All的用法
- SQL中UNION與UNION ALL的區(qū)別小結(jié)
相關(guān)文章
MySQL在Windows中net start mysql 啟動(dòng)MySQL服務(wù)報(bào)錯(cuò) 發(fā)生系統(tǒng)錯(cuò)誤解決方案
這篇文章主要介紹了MySQL在Windows中net start mysql 啟動(dòng)MySQL服務(wù)報(bào)錯(cuò) 發(fā)生系統(tǒng)錯(cuò)誤解決方案,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-07-07MySQL進(jìn)行大數(shù)據(jù)量分頁(yè)的優(yōu)化技巧分享
mysql大數(shù)據(jù)量分頁(yè)情況下性能會(huì)很差,所以本文就來(lái)講一講mysql大數(shù)據(jù)量下偏移量很大,性能很差的問(wèn)題,并附上解決方式,希望對(duì)大家有所幫助2024-01-01MySQL中觸發(fā)器入門簡(jiǎn)單實(shí)例與介紹
本文章來(lái)mysql初學(xué)者介紹在mysql怎么創(chuàng)建觸發(fā)器及觸發(fā)器在mysql執(zhí)行順序,下面我來(lái)給大家詳細(xì)介紹2013-08-08sql如何使用group by分組,同時(shí)查詢其它字段
文章介紹了使用SQL的GROUP BY進(jìn)行分組查詢時(shí)的一些規(guī)則和技巧,主要強(qiáng)調(diào)了在SELECT后面的字段要么是聚合函數(shù)的一部分,要么必須包含在GROUP BY子句中,此外,文章還討論了如何在GROUP BY時(shí)查詢其他字段,通過(guò)使用MAX或MIN函數(shù)來(lái)實(shí)現(xiàn)2024-12-12Mysql中報(bào)錯(cuò)函數(shù)floor()函數(shù)和rand()函數(shù)的配合使用及原理詳解
在項(xiàng)目中的SQL語(yǔ)句中遇到幾個(gè)數(shù)值處理函數(shù),看著有些懵,就小小的總結(jié)一下,這篇文章主要給大家介紹了關(guān)于Mysql中報(bào)錯(cuò)函數(shù)floor()函數(shù)和rand()函數(shù)的配合使用及原理的相關(guān)資料,需要的朋友可以參考下2022-07-07