一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|數據庫技術|

服務器之家 - 數據庫 - Mysql - MySQL子查詢操作實例詳解

MySQL子查詢操作實例詳解

2019-07-07 15:23程志偉 Mysql

這篇文章主要介紹了MySQL子查詢操作,結合實例形式較為詳細的分析了mysql表的創建、常見子查詢運算與關鍵字使用技巧,需要的朋友可以參考下

本文實例總結了MySQL子查詢操作。分享給大家供大家參考,具體如下:

定義兩個表tb1和tb2

CREATE table tbl1 ( num1 INT NOT NULL);
CREATE table tbl2 ( num2 INT NOT NULL);

向兩個表中插入數據:

INSERT INTO tbl1 values(1), (5), (13), (27);
INSERT INTO tbl2 values(6), (14), (11), (20);

any some關鍵字的子查詢

SELECT num1
FROM tbl1
WHERE num1 > ANY (SELECT num2 FROM tbl2);

all關鍵字的子查詢

SELECT num1
FROM tbl1
WHERE num1 > ALL (SELECT num2 FROM tbl2);

exists關鍵字的子查詢

SELECT * from fruits
WHERE EXISTS
(SELECT s_name FROM suppliers WHERE s_id = 107);

SELECT * from fruits
WHERE f_price>10.20 AND EXISTS
(SELECT s_name FROM suppliers WHERE s_id = 107);

SELECT * from fruits
WHERE NOT EXISTS
(SELECT s_name FROM suppliers WHERE s_id = 107);

in關鍵字的子查詢

SELECT c_id
FROM orders
WHERE o_num IN (SELECT o_num FROM orderitems WHERE f_id = 'c0');

SELECT c_id
FROM orders
WHERE o_num NOT IN (SELECT o_num FROM orderitems WHERE f_id = 'c0');

帶比較運算符的子查詢

SELECT s_id, f_name FROM fruits
WHERE s_id =
(SELECT s1.s_id from suppliers AS s1 WHERE s1.s_city = 'Tianjin');

<>所有非

SELECT s_id, f_name FROM fruits
WHERE s_id <>
(SELECT s1.s_id from suppliers AS s1 WHERE s1.s_city = 'Tianjin');

定義兩個表tb1和tb2

CREATE table tbl1 ( num1 INT NOT NULL);
CREATE table tbl2 ( num2 INT NOT NULL);

向兩個表中插入數據

INSERT INTO tbl1 values(1), (5), (13), (27);
INSERT INTO tbl2 values(6), (14), (11), (20);

【例.53】返回tbl2表的所有 num2 列,然后將 tbl1 中的 num1 的值與之進行比較,只要大于 num2的任何值為符合查詢條件的結果

SELECT num1
FROM tbl1
WHERE num1 > ANY (SELECT num2 FROM tbl2);

【例.54】返回tbl1表的中比tbl2表num2 列所有值都大的值

SELECT num1
FROM tbl1
WHERE num1 > ALL (SELECT num2 FROM tbl2);

【例.55】查詢表suppliers表中是否存在s_id=107的供應商,如果存在則查詢fruits表中的記錄

SELECT * from fruits
WHERE EXISTS
(SELECT s_name FROM suppliers WHERE s_id = 107);

【例.56】查詢表suppliers表中是否存在s_id=107的供應商,如果存在則查詢fruits表中的f_price大于10.20的記錄

SELECT * from fruits
WHERE f_price>10.20 AND EXISTS
(SELECT s_name FROM suppliers WHERE s_id = 107);

【例.57】查詢表suppliers表中是否存在s_id=107的供應商,如果不存在則查詢fruits表中的記錄

SELECT * from fruits
WHERE NOT EXISTS
(SELECT s_name FROM suppliers WHERE s_id = 107);

【例.58】在orderitems表中查詢訂購f_id為c0的訂單號,并根據訂單號查詢具有訂單號的客戶c_id

SELECT c_id FROM orders WHERE o_num IN
(SELECT o_num FROM orderitems WHERE f_id = 'c0');

【例.59】與前一個例子語句類似,但是在SELECT語句中使用NOT IN操作符

SELECT c_id FROM orders WHERE o_num NOT IN
(SELECT o_num FROM orderitems WHERE f_id = 'c0');

【例.60】在suppliers表中查詢s_city等于Tianjin的供應商s_id,然后在fruits表中查詢所有該供應商提供的水果的種類

SELECT s_id, f_name FROM fruits
WHERE s_id =
(SELECT s1.s_id from suppliers AS s1 WHERE s1.s_city = 'Tianjin');

【例.61】在suppliers表中查詢s_city等于Tianjin的供應商s_id,然后在fruits表中查詢所有非該供應商提供的水果的種類,SQL語句如下:

SELECT s_id, f_name FROM fruits
WHERE s_id <>
(SELECT s1.s_id from suppliers AS s1 WHERE s1.s_city = 'Tianjin');

希望本文所述對大家MySQL數據庫計有所幫助。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 日本在线国产 | 欧美高清milf在线播放 | 国产午夜精品福利久久 | 9999热视频 | 青青草伊人久久 | 亚洲精品国产专区91在线 | 日韩欧美综合在线二区三区 | 色婷婷狠狠 | 农夫色综合 | 毛片视频网站在线观看 | 精品欧美一区二区三区在线观看 | 成人激情 | 红楼影视h38bar在线线播放 | 34看网片午夜理 | 亚洲日本aⅴ片在线观看香蕉 | 国产精品九九热 | 波多野结衣黑人系列在线观看 | 波多野结衣亚洲一区 | 亚洲是图你懂的 | 欧洲老太玩小伙 | 美女口述又粗又大感觉 | 男人日女人的b | 波多野结衣在线中文 | 美女张开下身让男人桶 | 99国产国人青青视频在线观看 | 天美蜜桃精东乌鸦传媒 | 9丨精品国产高清自在线看 9久热这里只有精品免费 | 春光乍泄在线 | zozzozozozo大| 桃色公寓 | 日韩亚洲人成网站在线播放 | 91国内精品线免费播放 | 日本h片在线 | 天天白天天谢天天啦 | 日本高清视频一区二区 | 欧美一级艳片视频免费观看 | 欧美人与日本人xx在线视频 | 久久无码人妻AV精品一区 | 99国产成人精品2021 | 亚洲精品视频导航 | 精品麻豆|