亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

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

簡單聊一聊SQL中的union和union all

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

概念

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

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

基礎(chǔ)語法

-- 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)部的每個 SELECT 語句必須擁有相同數(shù)量的列

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

每個 SELECT 語句中的列的順序必須相同

使用技巧

我們發(fā)現(xiàn)我們用 UNION 得到的結(jié)果都是必須是相同的,這就不得不提 inor 這兩個關(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";

通過在用戶表(users)這幾個select語句中我們比較一下

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

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

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

區(qū)別

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

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

總結(jié)

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

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

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

標(biāo)簽: MySQL
主站蜘蛛池模板: 一级性黄色片 | 日韩免费视频 | 国产精品高清m3u8在线播放 | 品爱网在线观看视频免费视频 | 亚洲日产综合欧美一区二区 | 伊人网综合在线视频 | 久久日韩精品 | 视频在线亚洲 | 黄色片视频在线免费观看 | 国内自拍在线视频高清 | 精品国产免费观看一区高清 | 国产伦精品一区二区三区网站 | 亚洲精品国产第一区二区图片 | 污的网址 | 国产精品久久网 | 青青自拍视频一区二区三区 | 久久99国产精一区二区三区 | 国产婷婷一区二区三区 | 色综合99天天亚洲 | 华人欧美国产在线精品 | 国产啪在线 | 国产精品久久久久免费a∨ 国产精品久久久久这里只有精品 | 欧美日韩无线码免费播放 | 黄色片网站日本 | 中文字幕欧美日韩一 | 欧美日韩高清观看一区二区 | 国语性猛交xxxx乱大交 | 99九九成人免费视频精品 | 久99频这里只精品23热 视频 | 五月婷婷六月合 | 香港a毛片 | 日韩永久免费视频 | 日韩欧美一级毛片视频免费 | 亚洲精品第一综合99久久 | 免费黄色资源 | 深夜偷偷看视频在线观看 | 日本热久久 | 亚洲色图在线观看 | 精品国产中文一级毛片在线看 | 久久精品中文字幕第一页 | 久久久精品中文字幕 |