最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

MySQL之union聯(lián)合查詢的實現(xiàn)

 更新時間:2024年04月19日 09:22:08   作者:白云如幻  
聯(lián)合查詢就是將多個查詢結果的結果集合并到一起,字段數(shù)不變,多個查詢結果的記錄數(shù)合并,本文主要介紹了MySQL之union聯(lián)合查詢的實現(xiàn),具有一定的參考價值,感興趣的可以了解一下

UNION 的含義是“聯(lián)合,并集,結合”,在MySQL中可以將多個查詢語句的結果合并成一個結果集,在MySQL 不支持FULL OUTER JOIN 的情況下,彌補了“并集” 查詢的短板。

聯(lián)合查詢:

關鍵字union,作用就是將多條查詢語句的結果合并成一個結果集。

案例:(查詢部門編號大于100或名字中含有a字符的員工信息)

select * from employees where department_id>100 or last_name like '%a%';

用聯(lián)合查詢演示:

select * from employees where department_id>100
union
select * from employees where last_name like '%a%';

union是應用場景:

比如在我們有個數(shù)據(jù)庫中的老師表和學生表,兩者之間沒有直接的關聯(lián)關系,但是又有一些共通性,但是現(xiàn)在我們想要查詢學校所有男老師和男學生的信息(學生和老師的編號,姓名,出現(xiàn)日期,性別),這個時候就是應用union的時候。

SELECT `tno` 編號,`tname`,`tsex`,`tbirthday`
FROM `teachers`
WHERE `tsex`='男'
UNION
SELECT `sno`,`sname`,`ssex`,`sbirthday`
FROM `students`
WHERE `ssex`='男';

聯(lián)合查詢的特點:

  • 聯(lián)合查詢的兩個子查詢的查詢字段個數(shù)要一致
  • 要求聯(lián)合查詢的子查詢的查詢列表順序要在內(nèi)容上保持一致
  • 使用union聯(lián)合默認會自動去重,如果不想去重可以將union改為union all

聯(lián)合查詢的規(guī)則

聯(lián)合查詢是有一定使用規(guī)則的,如果不加注意,MySQL就有可能執(zhí)行報錯,或意義混亂

1、多條查詢語句的查詢列數(shù)必須保持一致,否則報錯。

2、多條查詢語句的列值類型順序最好保持一致。

3、UNION 關鍵字默認不查詢重復記錄,但只要有一個字段不一樣就認為是兩條記錄。

規(guī)則一:查詢列數(shù)必須保持一致

其實很好理解,如果要將兩個結果集合并,那么就需要將列數(shù)統(tǒng)一,MySQL對此作了嚴格的限制,不會以 NULL 值顯示沒有查詢該列的查詢記錄,這是為了保證數(shù)據(jù)的準確性,原因是 NULL 也是一種值

SELECT emp_id 編號, emp_name 姓名, dept_id 所屬部門或班級, manager_id FROM emp
UNION
SELECT stu_id 編號, stu_name 姓名, class_id 所屬部門或班級 FROM student

規(guī)則二:列值類型和順序最好保持一致

“最好” 的意思是 “我們可以不這樣做,但皮一下并沒有什么意義”。

比如,我們將stu_name 與 class_id 調(diào)換順序:

SELECT emp_id 編號, emp_name 姓名, dept_id 所屬部門或班級 FROM emp
UNION
SELECT stu_id 編號, class_id 姓名, stu_name 所屬部門或班級 FROM student
LIMIT 15

 MySQL雖然不會報錯,但結果已經(jīng)不具有什么使用意義了。另外,列的別名其實并不需要完全統(tǒng)一,多條查詢語句中如果出現(xiàn)不統(tǒng)一的列名,MySQL會默認使用第一條查詢語句的列名。如:

SELECT emp_id 編號, emp_name 姓名, dept_id 所屬部門或班級 FROM emp
UNION
SELECT stu_id, stu_name, class_id FROM student
LIMIT 15

但為了保證可讀性,建議為每條查詢語句指定相同的列名,保持統(tǒng)一格式。

規(guī)則三:UNION 默認去重

UNION 關鍵字不會查詢重復的記錄,但重復的記錄并不是簡簡單單的“看上去重復”或“主鍵重復”,記錄中只要有一個字段不一致,UNION 就會老老實實的將他們都查詢出來。

UNION 與 UNION ALL

UNION 關鍵字是去重的聯(lián)合查詢,如果非要將所有記錄都查詢出來,不忽略重復的記錄,那么可以使用 UNION ALL ,對比來看一下:

SELECT * FROM emp
UNION 
SELECT * FROM emp

UNION 的結果: 

SELECT * FROM emp
UNION ALL
SELECT * FROM emp

UNION  ALL 的結果:

到此這篇關于MySQL之union聯(lián)合查詢的實現(xiàn)的文章就介紹到這了,更多相關MySQL union聯(lián)合查詢內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家! 

相關文章

  • MySQL如何添加環(huán)境變量和初始化MySQL

    MySQL如何添加環(huán)境變量和初始化MySQL

    本文主要介紹了如何在Windows系統(tǒng)中添加MySQL的環(huán)境變量以及如何初始化MySQL,通過添加環(huán)境變量,可以在任意一個命令提示符中直接調(diào)用MySQL的相關程序,大大簡化了操作,初始化MySQL時,需要新建一個配置文件并指定默認編碼集和存儲引擎,如果初始化過程中出現(xiàn)錯誤
    2024-11-11
  • mysql 5.7.17 安裝配置方法圖文教程(ubuntu 16.04)

    mysql 5.7.17 安裝配置方法圖文教程(ubuntu 16.04)

    這篇文章主要為大家分享了ubuntu 16.04下mysql 5.7.17 安裝配置方法圖文教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-01-01
  • MySQL優(yōu)化案例之隱式字符編碼轉(zhuǎn)換

    MySQL優(yōu)化案例之隱式字符編碼轉(zhuǎn)換

    這篇文章主要介紹了MySQL優(yōu)化案例之隱式字符編碼轉(zhuǎn)換,隱式類型轉(zhuǎn)換也會導致同樣的放棄走樹搜索,更多相關內(nèi)容具有一定的參考價值,需要的朋友可以參考一下
    2022-07-07
  • MySQL常用的幾種連接(JOIN)方式總結

    MySQL常用的幾種連接(JOIN)方式總結

    MySQL常用JOIN類型包括INNER JOIN(返回匹配記錄)、LEFT JOIN(左表全顯示,右表無匹配則為NULL)、RIGHT JOIN(右表全顯示)、FULL OUTER JOIN(需用UNION模擬),默認為INNER JOIN,選擇時需根據(jù)數(shù)據(jù)完整性和業(yè)務需求,合理使用索引以優(yōu)化性能
    2025-07-07
  • MySQL數(shù)據(jù)庫表的合并與分區(qū)實現(xiàn)介紹

    MySQL數(shù)據(jù)庫表的合并與分區(qū)實現(xiàn)介紹

    今天我們來聊聊處理大數(shù)據(jù)時Mysql的存儲優(yōu)化。當數(shù)據(jù)達到一定量時,一般的存儲方式就無法解決高并發(fā)問題了。最直接的MySQL優(yōu)化就是分區(qū)分表,以下是我個人對分區(qū)分表的筆記
    2022-09-09
  • 如何選擇合適的MySQL日期時間類型來存儲你的時間

    如何選擇合適的MySQL日期時間類型來存儲你的時間

    這篇文章主要介紹了如何選擇合適的MySQL日期時間類型來存儲你的時間,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2020-08-08
  • 淺談MySql的存儲引擎(表類型)

    淺談MySql的存儲引擎(表類型)

    通常意義上,數(shù)據(jù)庫也就是數(shù)據(jù)的集合,具體到計算機上數(shù)據(jù)庫可以是存儲器上一些文件的集合或者一些內(nèi)存數(shù)據(jù)的集合
    2011-05-05
  • 如何使用MySQL一個表中的字段更新另一個表中字段

    如何使用MySQL一個表中的字段更新另一個表中字段

    這篇文章主要介紹了如何使用MySQL一個表中的字段更新另一個表中字段,需要的朋友可以參考下
    2018-11-11
  • MySQL中去重處理的方法小結

    MySQL中去重處理的方法小結

    本文主要介紹了MySQL中去重方法小結,包含DISTINCT、GROUPBY、聚合函數(shù)、子查詢、臨時表、窗口函數(shù)、GROUP_CONCAT這些方法,文中通過示例代碼介紹的非常詳細,需要的朋友們下面隨著小編來一起學習學習吧
    2024-11-11
  • 淺談Mysql8和mysql5.7的區(qū)別

    淺談Mysql8和mysql5.7的區(qū)別

    本文主要介紹了Mysql8和mysql5.7的區(qū)別,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03

最新評論

石屏县| 翁牛特旗| 清苑县| 繁峙县| 丹东市| 巍山| 日照市| 正镶白旗| 万源市| 顺义区| 青岛市| 乳山市| 铜山县| 尚志市| 南安市| 龙游县| 赤峰市| 容城县| 夹江县| 冷水江市| 犍为县| 安吉县| 岳西县| 榆林市| 迁安市| 望城县| 渝北区| 松阳县| 梁河县| 黄梅县| 肃宁县| 绥江县| 青田县| 越西县| 驻马店市| 孟州市| 灵丘县| 金寨县| 武穴市| 镇沅| 巴林右旗|