亚洲免费在线视频-亚洲啊v-久久免费精品视频-国产精品va-看片地址-成人在线视频网

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

簡(jiǎn)單聊一聊SQL中的union和union all

瀏覽:53日期:2023-02-18 16:43:44
目錄
  • 概念
  • 基礎(chǔ)語(yǔ)法
  • 使用技巧
  • 區(qū)別
  • 總結(jié)

概念

MySQL UNION 操作符用于連接兩個(gè)以上的 SELECT 語(yǔ)句的結(jié)果組合到一個(gè)結(jié)果集合中。多個(gè) SELECT 語(yǔ)句會(huì)刪除重復(fù)的數(shù)據(jù)。

UNION 操作符選取不同的值,如果允許得到重復(fù)的值,可以使用 UNION ALL

基礎(chǔ)語(yǔ)法

-- union
SELECT column_name(s) FROM table1
UNION
SELECT column_name(s) FROM table2;

-- union all
SELECT column_name(s) FROM table1
UNION ALL
SELECT column_name(s) FROM table2;

注意:
UNION 內(nèi)部的每個(gè) SELECT 語(yǔ)句必須擁有相同數(shù)量的列

列也必須擁有相似的數(shù)據(jù)類型

每個(gè) SELECT 語(yǔ)句中的列的順序必須相同

使用技巧

我們發(fā)現(xiàn)我們用 UNION 得到的結(jié)果都是必須是相同的,這就不得不提 inor 這兩個(gè)關(guān)鍵字了

-- in
select * from users 
where name in ("sbc", "bhy");

-- or
select * from users
where name = "sbc" or name = "bhy";

select * from users
where name = "sbc" or tel = "123456";

-- union
select * from users
where name = "sbc"
union
select * from users
where name = "bhy";

select * from users
where name = "sbc"
union
select * from users
where tel = "123456";

通過(guò)在用戶表(users)這幾個(gè)select語(yǔ)句中我們比較一下

如果我們想要名字為 sbc 或者 bhy 的用戶我們可以用inorunion都可以實(shí)現(xiàn)

如果在較大的數(shù)據(jù)量下差距就會(huì)有明顯的差距,如果 name 字段存在索引,這幾種方法都是不分上下的;可是如果像 or 寫法的第二種情況,那數(shù)據(jù)庫(kù)都會(huì)去找兩個(gè)字段各自的索引嗎,答案不是的,數(shù)據(jù)庫(kù)只會(huì)尋找一個(gè)字段的索引,而另一個(gè)字段就需要全局查詢

這樣遇到較大的數(shù)據(jù)量就會(huì)耗費(fèi)大量的時(shí)間,但是 union 方法的第二種方法就會(huì)引用兩次索引。

區(qū)別

  • union :對(duì)兩個(gè)結(jié)果集進(jìn)行并集操作,不包括重復(fù)行,相當(dāng)于distinct,同時(shí)進(jìn)行默認(rèn)規(guī)則的排序
  • union all:對(duì)兩個(gè)結(jié)果集進(jìn)行并集操作,包括重復(fù)行,即所有的結(jié)果全部顯示,不管是不是重復(fù);

tips
union all只是合并查詢結(jié)果,并不會(huì)進(jìn)行去重和排序操作,在沒有去重的前提下,使用union all的執(zhí)行效率要比union高

總結(jié)

如果遇到?jīng)]有索引的表或者只對(duì)單個(gè)字段進(jìn)行篩選,其實(shí)推薦使用 or 和 in ,看上去優(yōu)雅簡(jiǎn)潔

如果遇到多個(gè)索引列的情況,還是推薦使用 union 和 union all

到此這篇關(guān)于SQL中union和union all的文章就介紹到這了,更多相關(guān)SQL中union和union all內(nèi)容請(qǐng)搜索以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持!

標(biāo)簽: MySQL
主站蜘蛛池模板: 本道久久综合88全国最大色 | 色综合91久久精品中文字幕 | 狠狠色综合色综合网站久久 | 九草视频在线 | 男女性高清爱潮视频免费观看 | 亚洲另类激情综合偷自拍图 | 寡妇一级a毛片免费播放 | 中文字幕日韩精品有码视频 | 亚洲性影院 | 国产亚洲精品一区二区在线播放 | 99精品欧美一区二区三区美图 | 国产91网址| 亚洲男人的天堂视频 | 成年网站在线 | www.av在线| 手机午夜看片 | 狠狠色丁香久久婷婷综 | 久久国产三级精品 | 国产午夜精品久久理论片小说 | 91不卡在线精品国产 | 久久久亚洲精品蜜桃臀 | 九九国产在线 | 国产一区二区在线观看免费 | 全部免费的毛片在线看美国 | 视频二区国产 | 日韩欧美一级a毛片欧美一级 | 国产小毛片 | 亚洲最大黄网 | 久久福利青草免费精品 | 亚洲毛片免费在线观看 | 国产91丝袜美腿在线观看 | 国产一级视频免费 | 香蕉网站狼人久久五月亭亭 | xxxxbbbb国产精品 | 日本一区二区三区四区公司 | 日韩 综合 | 日本www免费视频网站在线观看 | 三级黄色免费看 | 日本www视频 | 亚洲国产成人久久午夜 | 欧美人与鲁交大毛片免费 |