簡單了解MySQL union all與union的區(qū)別
union 是對數(shù)據(jù)進(jìn)行并集操作,不包括重復(fù)行,同時進(jìn)行默認(rèn)排序Union all 是對數(shù)據(jù)進(jìn)行并集操作,包括重復(fù)行,不進(jìn)行排序舉例說明:
創(chuàng)建數(shù)據(jù)庫表:
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)行表鏈接后會篩選掉重復(fù)的記錄,對所產(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é)果合并后就返回。如果返回的兩個結(jié)果集中有重復(fù)的數(shù)據(jù),那么返回的結(jié)果集就會包含重復(fù)的數(shù)據(jù)了。
效率:
從效率上說,UNION ALL 要比UNION快很多,所以,如果可以確認(rèn)合并的兩個結(jié)果集中不包含重復(fù)數(shù)據(jù)且不需要排序時的話,那么就使用UNION ALL。
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- MySQL中關(guān)鍵字UNION和UNION ALL的區(qū)別
- MySQL之union和union all的使用及區(qū)別說明
- 簡單聊一聊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語句之Union和Union All的用法
- SQL中UNION與UNION ALL的區(qū)別小結(jié)
相關(guān)文章
MySQL在Windows中net start mysql 啟動MySQL服務(wù)報錯 發(fā)生系統(tǒng)錯誤解決方案
這篇文章主要介紹了MySQL在Windows中net start mysql 啟動MySQL服務(wù)報錯 發(fā)生系統(tǒng)錯誤解決方案,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-07-07MySQL進(jìn)行大數(shù)據(jù)量分頁的優(yōu)化技巧分享
mysql大數(shù)據(jù)量分頁情況下性能會很差,所以本文就來講一講mysql大數(shù)據(jù)量下偏移量很大,性能很差的問題,并附上解決方式,希望對大家有所幫助2024-01-01Mysql中報錯函數(shù)floor()函數(shù)和rand()函數(shù)的配合使用及原理詳解
在項(xiàng)目中的SQL語句中遇到幾個數(shù)值處理函數(shù),看著有些懵,就小小的總結(jié)一下,這篇文章主要給大家介紹了關(guān)于Mysql中報錯函數(shù)floor()函數(shù)和rand()函數(shù)的配合使用及原理的相關(guān)資料,需要的朋友可以參考下2022-07-07