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

MySQL筆記之子查詢使用介紹

 更新時(shí)間:2013年05月03日 15:32:03   作者:  
子查詢是將一個(gè)查詢語句嵌套在另一個(gè)查詢語句中,內(nèi)層查詢語句的查詢結(jié)果,可以為外層查詢語句提供查詢條件

子查詢是將一個(gè)查詢語句嵌套在另一個(gè)查詢語句中

內(nèi)層查詢語句的查詢結(jié)果,可以為外層查詢語句提供查詢條件

因?yàn)樵谔囟ㄇ闆r下,一個(gè)查詢語句的條件需要另一個(gè)查詢語句來獲取

參考表:employee

 

參考表:department

帶IN關(guān)鍵字的子查詢
復(fù)制代碼 代碼如下:

mysql> SELECT * FROM employee
    -> WHERE d_id IN
    -> (SELECT d_id FROM department);
+------+------+--------+------+------+--------------------+
| num  | d_id | name   | age  | sex  | homeaddr           |
+------+------+--------+------+------+--------------------+
|    1 | 1001 | 張三   |   26 | 男   | 北京市海淀區(qū)         |
|    2 | 1001 | 李四   |   24 | 女   | 北京市昌平區(qū)         |
|    3 | 1002 | 王五   |   25 | 男   | 湖南長(zhǎng)沙市           |
+------+------+--------+------+------+--------------------+
 rows in set (0.00 sec)

此處首先查詢出department表中所有d_id字段的信息,并將結(jié)果作為條件

接著查詢employee表中以d_id為條件的所有字段信息

NOT IN的效果與上面剛好相反

帶比較運(yùn)算符的子查詢

復(fù)制代碼 代碼如下:

mysql> SELECT d_id, d_name FROM department
    -> WHERE d_id!=
    -> (SELECT d_id FROM employee WHERE age=24);
+------+-----------+
| d_id | d_name    |
+------+-----------+
| 1002 | 生產(chǎn)部    |
| 1003 | 銷售部    |
+------+-----------+
 rows in set (0.00 sec)

這里查詢出了哪些部門沒有年齡為24歲的員工,看起來有點(diǎn)復(fù)雜

此外,運(yùn)算符還有很多,這里不再贅述


帶EXISTS關(guān)鍵字的子查詢

EXISTS關(guān)鍵字表示存在。使用EXISTS關(guān)鍵字時(shí),內(nèi)層查詢語句不返回查詢的記錄,而是返回一個(gè)真假值,如果內(nèi)層查詢語句查詢到滿足條件的記錄,就返回true,否則返回false

當(dāng)返回的值為true時(shí),外層查詢語句將進(jìn)行查詢,否則不進(jìn)行查詢

復(fù)制代碼 代碼如下:

mysql> SELECT * FROM employee
    -> WHERE EXISTS
    -> (SELECT d_name FROM department WHERE d_id=1004);
Empty set (0.00 sec)

此處內(nèi)層循環(huán)并沒有查詢到滿足條件的結(jié)果,因此返回false,外層查詢不執(zhí)行

NOT EXISTS剛好與之相反

當(dāng)然,EXISTS關(guān)鍵字可以與其他的查詢條件一起使用

條件表達(dá)式與EXISTS關(guān)鍵字之間用AND或者OR來連接

復(fù)制代碼 代碼如下:

mysql> SELECT * FROM employee
    -> WHERE age>24 AND EXISTS
    -> (SELECT d_name FROM department WHERE d_id=1003);
+------+------+--------+------+------+--------------------+
| num  | d_id | name   | age  | sex  | homeaddr           |
+------+------+--------+------+------+--------------------+
|    1 | 1001 | 張三   |   26 | 男   | 北京市海淀區(qū)         |
|    3 | 1002 | 王五   |   25 | 男   | 湖南長(zhǎng)沙市           |
+------+------+--------+------+------+--------------------+
 rows in set (0.00 sec)

帶ANY關(guān)鍵字的子查詢

ANY關(guān)鍵字表示滿足其中任一條件

復(fù)制代碼 代碼如下:

mysql> SELECT * FROM employee
    -> WHERE d_id!=ANY
    -> (SELECT d_id FROM department);
+------+------+--------+------+------+--------------------+
| num  | d_id | name   | age  | sex  | homeaddr           |
+------+------+--------+------+------+--------------------+
|    1 | 1001 | 張三   |   26 | 男   | 北京市海淀區(qū)         |
|    2 | 1001 | 李四   |   24 | 女   | 北京市昌平區(qū)         |
|    3 | 1002 | 王五   |   25 | 男   | 湖南長(zhǎng)沙市           |
|    4 | 1004 | Aric   |   15 | 男   | England            |
+------+------+--------+------+------+--------------------+
 rows in set (0.00 sec)

帶ALL關(guān)鍵字的子查詢

ALL關(guān)鍵字表示滿足其中所有條件

復(fù)制代碼 代碼如下:

mysql> SELECT * FROM employee
    -> WHERE d_id>=ALL
    -> (SELECT d_id FROM department);
+------+------+------+------+------+----------+
| num  | d_id | name | age  | sex  | homeaddr |
+------+------+------+------+------+----------+
|    4 | 1004 | Aric |   15 | 男   | England  |
+------+------+------+------+------+----------+
 row in set (0.00 sec)

暫時(shí)不明白這兩條語句是什么意思,到時(shí)候再補(bǔ)上


UNION合并查詢結(jié)果

復(fù)制代碼 代碼如下:

mysql> SELECT d_id FROM employee
    -> UNION
    -> SELECT d_id FROM department;
+------+
| d_id |
+------+
| 1001 |
| 1002 |
| 1004 |
| 1003 |
+------+
 rows in set (0.00 sec)

合并比較好理解,也就是將多個(gè)查詢的結(jié)果合并在一起,然后去除其中的重復(fù)記錄

如果想保存重復(fù)記錄可以使用UNION ALL語句

相關(guān)文章

  • vs如何讀取mysql中的數(shù)據(jù)并解決中文亂碼問題

    vs如何讀取mysql中的數(shù)據(jù)并解決中文亂碼問題

    這篇文章主要介紹了vs如何讀取mysql中的數(shù)據(jù)并解決中文亂碼問題,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-09-09
  • MySQL如何獲取當(dāng)前時(shí)間與日期間隔

    MySQL如何獲取當(dāng)前時(shí)間與日期間隔

    這篇文章主要介紹了MySQL如何獲取當(dāng)前時(shí)間與日期間隔問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • Mysql數(shù)據(jù)庫庫操作大全

    Mysql數(shù)據(jù)庫庫操作大全

    本文介紹了如何在MySQL中創(chuàng)建、備份和修改數(shù)據(jù)庫,以及如何查看和指定數(shù)據(jù)庫的編碼集和校驗(yàn)集,還涵蓋了對(duì)表的操作,包括創(chuàng)建、查看、插入、查詢和刪除表,以及對(duì)數(shù)據(jù)的排序,感興趣的朋友跟隨小編一起看看吧
    2026-03-03
  • 教你解決往mysql數(shù)據(jù)庫中存入漢字報(bào)錯(cuò)的方法

    教你解決往mysql數(shù)據(jù)庫中存入漢字報(bào)錯(cuò)的方法

    這篇文章主要介紹了Mysql基礎(chǔ)之教你解決往數(shù)據(jù)庫中存入漢字報(bào)錯(cuò)的方法,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)mysql的小伙伴們有非常好的幫助,需要的朋友可以參考下
    2021-05-05
  • Mysql8公用表表達(dá)式CTE詳解

    Mysql8公用表表達(dá)式CTE詳解

    這篇文章主要介紹了Mysql8公用表表達(dá)式CTE詳解,公用表表達(dá)式(或通用表表達(dá)式)簡(jiǎn)稱為CTE,CTE可以理解成一個(gè)可以復(fù)用的子查詢,當(dāng)然跟子查詢還是有點(diǎn)區(qū)別的,CTE可以引用其他CTE,但子查詢不能引用其他子查詢,需要的朋友可以參考下
    2023-08-08
  • windows 下忘記mysql root密碼的更改方法

    windows 下忘記mysql root密碼的更改方法

    mysql數(shù)據(jù)庫忘記了root密碼是件很痛苦的事,本文介紹如何解決windows環(huán)境下mysql服務(wù)器忘記root密碼的解決方法,需要的朋友可以參考下
    2016-10-10
  • JDBC MySQL 連接 URL完整權(quán)威示例指南

    JDBC MySQL 連接 URL完整權(quán)威示例指南

    這篇文章主要介紹了JDBC MySQL 連接 URL完整權(quán)威示例指南,本文結(jié)合實(shí)例代碼給大家講解的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧
    2026-03-03
  • windows服務(wù)器下備份mysql數(shù)據(jù)庫的腳本分享

    windows服務(wù)器下備份mysql數(shù)據(jù)庫的腳本分享

    這篇文章主要為大家詳細(xì)介紹了windows服務(wù)器下備份mysql數(shù)據(jù)庫的腳本,本文主要以5.7版本為例,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解下
    2025-12-12
  • 對(duì)MySql經(jīng)常使用語句的全面總結(jié)(必看篇)

    對(duì)MySql經(jīng)常使用語句的全面總結(jié)(必看篇)

    下面小編就為大家?guī)硪黄獙?duì)MySql經(jīng)常使用語句的全面總結(jié)(必看篇)。小編覺的挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-03-03
  • MySQL中正則表達(dá)式用法示例詳解

    MySQL中正則表達(dá)式用法示例詳解

    MySQL 中正則表達(dá)式通過 REGEXP 或 RLIKE 操作符實(shí)現(xiàn)(兩者等價(jià)),用于在 WHERE 子句中進(jìn)行復(fù)雜的字符串模式匹配,這篇文章主要介紹了MySQL中正則表達(dá)式用法,需要的朋友可以參考下
    2025-06-06

最新評(píng)論

徐州市| 吴川市| 汕尾市| 耒阳市| 兰州市| 镇赉县| 通化市| 都兰县| 柳江县| 长兴县| 正定县| 泾川县| 望谟县| 金华市| 米脂县| 阆中市| 安丘市| 双辽市| 桂东县| 凉山| 江口县| 金乡县| 兴城市| 赫章县| 阿拉善盟| 岳西县| 南溪县| 加查县| 高密市| 夏津县| 大关县| 兴和县| 富裕县| 大埔县| 和田市| 葵青区| 静海县| 武强县| 平阳县| 龙口市| 唐河县|