国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 數(shù)據(jù)庫(kù) > MySQL > 正文

MySQL筆記之子查詢使用介紹

2024-07-24 12:40:42
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
子查詢是將一個(gè)查詢語(yǔ)句嵌套在另一個(gè)查詢語(yǔ)句中   內(nèi)層查詢語(yǔ)句的查詢結(jié)果,可以為外層查詢語(yǔ)句提供查詢條件   因?yàn)樵谔囟ㄇ闆r下,一個(gè)查詢語(yǔ)句的條件需要另一個(gè)查詢語(yǔ)句來(lái)獲取   參考表:employee   MySQL筆記之子查詢使用介紹   參考表:department   MySQL筆記之子查詢使用介紹   帶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)     這里查詢出了哪些部門(mén)沒(méi)有年齡為24歲的員工,看起來(lái)有點(diǎn)復(fù)雜 此外,運(yùn)算符還有很多,這里不再贅述     帶EXISTS關(guān)鍵字的子查詢   EXISTS關(guān)鍵字表示存在。使用EXISTS關(guān)鍵字時(shí),內(nèi)層查詢語(yǔ)句不返回查詢的記錄,而是返回一個(gè)真假值,如果內(nèi)層查詢語(yǔ)句查詢到滿足條件的記錄,就返回true,否則返回false   當(dāng)返回的值為true時(shí),外層查詢語(yǔ)句將進(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)并沒(méi)有查詢到滿足條件的結(jié)果,因此返回false,外層查詢不執(zhí)行 NOT EXISTS剛好與之相反   當(dāng)然,EXISTS關(guān)鍵字可以與其他的查詢條件一起使用   條件表達(dá)式與EXISTS關(guān)鍵字之間用AND或者OR來(lái)連接   復(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í)不明白這兩條語(yǔ)句是什么意思,到時(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語(yǔ)句
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 固镇县| 大邑县| 大荔县| 楚雄市| 安岳县| 富裕县| 东安县| 木兰县| 慈溪市| 潼关县| 凤翔县| 博罗县| 蛟河市| 阿克苏市| 涞源县| 德格县| 石景山区| 伊吾县| 静宁县| 黄山市| 金阳县| 固原市| 哈密市| 景洪市| 定日县| 柯坪县| 镇赉县| 阳泉市| 云南省| 广水市| 汨罗市| 吉林省| 阿克苏市| 瑞丽市| 怀柔区| 灵璧县| 诏安县| 益阳市| 上虞市| 白山市| 东光县|