顾美玲勾引管家|日韩黄色成人|国产精品theporn动漫|欧美日日日|国产精品探花在线

專業(yè)只做數(shù)據(jù)庫實(shí)訓(xùn)和認(rèn)證的品牌機(jī)構(gòu)

微信公眾號(hào)新浪微博
免費(fèi)咨詢電話:400-0909-964
當(dāng)前位置: 網(wǎng)站首頁 > MySQL培訓(xùn) > MySQL課程 > MySQL培訓(xùn)機(jī)構(gòu):子查詢語句

MySQL培訓(xùn)機(jī)構(gòu):子查詢語句

文章來源: 更新時(shí)間:2016/7/12 14:06:14

在線老師點(diǎn)擊咨詢:

最新學(xué)訊:近期OCP認(rèn)證正在報(bào)名中,因考試人員較多請(qǐng)盡快報(bào)名獲取最近考試時(shí)間,報(bào)名費(fèi)用請(qǐng)聯(lián)系在線老師,甲骨文官方認(rèn)證,報(bào)名從速!

我要咨詢

子查詢是將一個(gè)查詢語句嵌套在另一個(gè)查詢語句中,內(nèi)層查詢語句的查詢結(jié)果,可以為外層查詢語句提供查詢條件

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

參考表:employee

參考表:department

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

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)沙市           |
+------+------+--------+------+------+--------------------+
3 rows in set (0.00 sec)

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

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

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

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

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 | 銷售部    |
+------+-----------+
2 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)行查詢

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來連接

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)沙市           |
+------+------+--------+------+------+--------------------+
2 rows in set (0.00 sec)

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

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

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            |
+------+------+--------+------+------+--------------------+
4 rows in set (0.00 sec)

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

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

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  |
+------+------+------+------+------+----------+
1 row in set (0.00 sec)

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

UNION合并查詢結(jié)果

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

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

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

本文地址:http://www.mudan321.com/mysql/kecheng/12455322614.html 轉(zhuǎn)載請(qǐng)注明!


PostgreSQL入門到精通 100+ 個(gè)學(xué)習(xí)資料

Oracle培訓(xùn)機(jī)構(gòu)

金牌講師<>

冉乃綱-老師CUUG金牌講師
冉老師 CUUG金牌講師 Oracle及RedHat高級(jí)講師、Unix/Linux 資深專家...[詳細(xì)了解老師]

免費(fèi)咨詢上課流程 客服在線中

陳衛(wèi)星-老師CUUG金牌講師
陳老師 CUUG金牌講師 精通Oracle管理、備份恢復(fù)、性能優(yōu)化 11年Ora...[詳細(xì)了解老師]

免費(fèi)咨詢上課流程 客服在線中

選學(xué)校如何選擇適合自己的學(xué)校

CUUG -CHINA UNIX USER GROUP,是國(guó)際UNIX組織UNIFORUM的中國(guó)代表,是國(guó)內(nèi)悠久的專業(yè)UNIX培訓(xùn)機(jī)構(gòu),被譽(yù)為中國(guó)UNIX 的搖籃。多年來,以提高教學(xué)質(zhì)量為本,強(qiáng)調(diào)素質(zhì)教育,積極引進(jìn)、消化國(guó)外的新技術(shù),有效的結(jié)合中國(guó)....[詳情]

一站式服務(wù)(從入學(xué)到就業(yè)一幫到底)

入學(xué)

學(xué)習(xí)

就業(yè)

實(shí)操

食宿
地址:北京市海淀區(qū)田村山南路35號(hào)院17號(hào)樓
課程咨詢: 400-0909-964
企業(yè)服務(wù):137 1818 8639(陳經(jīng)理)
部分信息來源于網(wǎng)絡(luò),如有錯(cuò)誤請(qǐng)聯(lián)系指正!
版權(quán)所有@北京神腦資訊技術(shù)有限公司 (CUUG,中國(guó)UNIX用戶協(xié)會(huì)) Copyright 2016 ALL Rights Reserved 京ICP備11008061號(hào)-1