SELECT 語句中的 子查詢(Sub Query)

SELECT 語句中的子查詢

子查詢(Sub Query)或者說內(nèi)查詢(Inner Query)馅而,也可以稱作嵌套查詢(Nested Query)趋厉,是一種嵌套在其他 SQL 查詢的 WHERE 子句中的查詢。

子查詢用于為主查詢返回其所需數(shù)據(jù)各薇,或者對檢索數(shù)據(jù)進行進一步的限制。

子查詢可以在 SELECT、INSERT隧枫、UPDATE 和 DELETE 語句中喉磁,同 =、<官脓、>协怒、>=、<=卑笨、IN孕暇、BETWEEN 等運算符一起使用。

使用子查詢必須遵循以下幾個規(guī)則:

子查詢必須括在圓括號中赤兴。
子查詢的 SELECT 子句中只能有一個列妖滔,除非主查詢中有多個列,用于與子查詢選中的列相比較桶良。
子查詢不能使用 ORDER BY座舍,不過主查詢可以。在子查詢中陨帆,GROUP BY 可以起到同 ORDER BY 相同的作用曲秉。
返回多行數(shù)據(jù)的子查詢只能同多值操作符一起使用,比如 IN 操作符疲牵。
SELECT 列表中不能包含任何對 BLOB承二、ARRAY、CLOB 或者 NCLOB 類型值的引用纲爸。
子查詢不能直接用在集合函數(shù)中亥鸠。
BETWEEN 操作符不能同子查詢一起使用,但是 BETWEEN 操作符可以用在子查詢中识啦。

通常情況下子查詢都與 SELECT 語句一起使用负蚊,其基本語法如下所示:

SELECT column_name [, column_name ]
FROM table1 [, table2 ]
WHERE column_name OPERATOR
(SELECT column_name [, column_name ]
FROM table1 [, table2 ]
[WHERE])
示例:

考慮 CUSTOMERS 表,表中記錄如下所示:

+----+----------+-----+-----------+----------+
| ID | NAME | AGE | ADDRESS | SALARY |
+----+----------+-----+-----------+----------+
| 1 | Ramesh | 35 | Ahmedabad | 2000.00 |
| 2 | Khilan | 25 | Delhi | 1500.00 |
| 3 | kaushik | 23 | Kota | 2000.00 |
| 4 | Chaitali | 25 | Mumbai | 6500.00 |
| 5 | Hardik | 27 | Bhopal | 8500.00 |
| 6 | Komal | 22 | MP | 4500.00 |
| 7 | Muffy | 24 | Indore | 10000.00 |
+----+----------+-----+-----------+----------+
現(xiàn)在袁滥,讓我們試一下在 SELECT 語句中進行子查詢:

SQL> SELECT *
FROM CUSTOMERS
WHERE ID IN (SELECT ID
FROM CUSTOMERS
WHERE SALARY > 4500) ;
上述語句的執(zhí)行結(jié)果如下所示:

+----+----------+-----+---------+----------+
| ID | NAME | AGE | ADDRESS | SALARY |
+----+----------+-----+---------+----------+
| 4 | Chaitali | 25 | Mumbai | 6500.00 |
| 5 | Hardik | 27 | Bhopal | 8500.00 |
| 7 | Muffy | 24 | Indore | 10000.00 |
+----+----------+-----+---------+----------+
INSERT 語句中的子查詢:

子查詢還可以用在 INSERT 語句中盖桥。INSERT 語句可以將子查詢返回的數(shù)據(jù)插入到其他表中。子查詢中選取的數(shù)據(jù)可以被任何字符题翻、日期或者數(shù)值函數(shù)所修飾揩徊。

其基本語法如下所示:

INSERT INTO table_name [ (column1 [, column2 ]) ]
SELECT [ *|column1 [, column2 ]
FROM table1 [, table2 ]
[ WHERE VALUE OPERATOR ]
示例:

考慮與 CUSTOMERS 表擁有相似結(jié)構(gòu)的 CUSTOMERS_BKP 表。現(xiàn)在要將 CUSTOMER 表中所有的數(shù)據(jù)復(fù)制到CUSTOMERS_BKP 表中嵌赠,代碼如下:

SQL> INSERT INTO CUSTOMERS_BKP
SELECT * FROM CUSTOMERS
WHERE ID IN (SELECT ID
FROM CUSTOMERS) ;
UPDATE 語句中的子查詢:

子查詢可以用在 UPDATE 語句中塑荒。當子查詢同 UPDATE 一起使用的時候,既可以更新單個列姜挺,也可更新多個列齿税。

其基本語法如下:

UPDATE table
SET column_name = new_value
[ WHERE OPERATOR [ VALUE ]
(SELECT COLUMN_NAME
FROM TABLE_NAME)
[ WHERE) ]
示例:

假設(shè)我們有一份 CUSTOMERS_BKP 表作為 CUSTOMERS 表的備份。

下面的示例將 CUSTOMERS 表中所有 AGE 大于或者等于 27 的客戶的 SALARY 字段都變?yōu)榱嗽瓉淼?0.25 倍:

SQL> UPDATE CUSTOMERS
SET SALARY = SALARY * 0.25
WHERE AGE IN (SELECT AGE FROM CUSTOMERS_BKP
WHERE AGE >= 27 );
這將影響兩行數(shù)據(jù)炊豪,隨后 CUSTOMERS 表中的記錄將如下所示:

+----+----------+-----+-----------+----------+
| ID | NAME | AGE | ADDRESS | SALARY |
+----+----------+-----+-----------+----------+
| 1 | Ramesh | 35 | Ahmedabad | 125.00 |
| 2 | Khilan | 25 | Delhi | 1500.00 |
| 3 | kaushik | 23 | Kota | 2000.00 |
| 4 | Chaitali | 25 | Mumbai | 6500.00 |
| 5 | Hardik | 27 | Bhopal | 2125.00 |
| 6 | Komal | 22 | MP | 4500.00 |
| 7 | Muffy | 24 | Indore | 10000.00 |
+----+----------+-----+-----------+----------+
DELETE 語句中的子查詢:

如同前面提到的其他語句一樣凌箕,子查詢還可以同 DELETE 語句一起使用拧篮。

其基本語法如下所示:

DELETE FROM TABLE_NAME
[ WHERE OPERATOR [ VALUE ]
(SELECT COLUMN_NAME
FROM TABLE_NAME)
[ WHERE) ]

示例:

假設(shè)我們有一份 CUSTOMERS_BKP 表作為 CUSTOMERS 表的備份。

下面的示例將從 CUSTOMERS 表中刪除所有 AGE 大于或者等于 27 的記錄:

SQL> DELETE FROM CUSTOMERS
WHERE AGE IN (SELECT AGE FROM CUSTOMERS_BKP
WHERE AGE > 27 );
這將影響兩行數(shù)據(jù)牵舱,隨后 CUSTOMERS 表中的記錄將如下所示:

+----+----------+-----+---------+----------+
| ID | NAME | AGE | ADDRESS | SALARY |
+----+----------+-----+---------+----------+
| 2 | Khilan | 25 | Delhi | 1500.00 |
| 3 | kaushik | 23 | Kota | 2000.00 |
| 4 | Chaitali | 25 | Mumbai | 6500.00 |
| 6 | Komal | 22 | MP | 4500.00 |
| 7 | Muffy | 24 | Indore | 10000.00 |
+----+----------+-----+---------+----------+

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末串绩,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子芜壁,更是在濱河造成了極大的恐慌礁凡,老刑警劉巖,帶你破解...
    沈念sama閱讀 223,126評論 6 520
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件慧妄,死亡現(xiàn)場離奇詭異顷牌,居然都是意外死亡,警方通過查閱死者的電腦和手機塞淹,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,421評論 3 400
  • 文/潘曉璐 我一進店門窟蓝,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人窖铡,你說我怎么就攤上這事疗锐》凰” “怎么了费彼?”我有些...
    開封第一講書人閱讀 169,941評論 0 366
  • 文/不壞的土叔 我叫張陵,是天一觀的道長口芍。 經(jīng)常有香客問我箍铲,道長,這世上最難降的妖魔是什么鬓椭? 我笑而不...
    開封第一講書人閱讀 60,294評論 1 300
  • 正文 為了忘掉前任颠猴,我火速辦了婚禮,結(jié)果婚禮上小染,老公的妹妹穿的比我還像新娘翘瓮。我一直安慰自己,他們只是感情好裤翩,可當我...
    茶點故事閱讀 69,295評論 6 398
  • 文/花漫 我一把揭開白布资盅。 她就那樣靜靜地躺著,像睡著了一般踊赠。 火紅的嫁衣襯著肌膚如雪呵扛。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,874評論 1 314
  • 那天筐带,我揣著相機與錄音今穿,去河邊找鬼。 笑死伦籍,一個胖子當著我的面吹牛蓝晒,可吹牛的內(nèi)容都是我干的腮出。 我是一名探鬼主播,決...
    沈念sama閱讀 41,285評論 3 424
  • 文/蒼蘭香墨 我猛地睜開眼芝薇,長吁一口氣:“原來是場噩夢啊……” “哼利诺!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起剩燥,我...
    開封第一講書人閱讀 40,249評論 0 277
  • 序言:老撾萬榮一對情侶失蹤慢逾,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后灭红,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體侣滩,經(jīng)...
    沈念sama閱讀 46,760評論 1 321
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,840評論 3 343
  • 正文 我和宋清朗相戀三年变擒,在試婚紗的時候發(fā)現(xiàn)自己被綠了君珠。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,973評論 1 354
  • 序言:一個原本活蹦亂跳的男人離奇死亡娇斑,死狀恐怖策添,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情毫缆,我是刑警寧澤唯竹,帶...
    沈念sama閱讀 36,631評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站苦丁,受9級特大地震影響浸颓,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜旺拉,卻給世界環(huán)境...
    茶點故事閱讀 42,315評論 3 336
  • 文/蒙蒙 一产上、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧蛾狗,春花似錦晋涣、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,797評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至蒲牧,卻和暖如春撇贺,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背冰抢。 一陣腳步聲響...
    開封第一講書人閱讀 33,926評論 1 275
  • 我被黑心中介騙來泰國打工松嘶, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人挎扰。 一個月前我還...
    沈念sama閱讀 49,431評論 3 379
  • 正文 我出身青樓翠订,卻偏偏與公主長得像巢音,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子尽超,可洞房花燭夜當晚...
    茶點故事閱讀 45,982評論 2 361

推薦閱讀更多精彩內(nèi)容

  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法官撼,類相關(guān)的語法,內(nèi)部類的語法似谁,繼承相關(guān)的語法傲绣,異常的語法,線程的語...
    子非魚_t_閱讀 31,669評論 18 399
  • 什么是SQL數(shù)據(jù)庫: SQL是Structured Query Language(結(jié)構(gòu)化查詢語言)的縮寫巩踏。SQL是...
    西貝巴巴閱讀 1,825評論 0 10
  • 無意間刷微博秃诵,看到了@拜托啦學(xué)妹11月6日的一個街訪視頻——合適真的比喜歡重要?視頻有些傷感塞琼,有人說喜歡比合適重要...
    ALAN是嵐不是藍閱讀 981評論 0 5
  • 字符串處理類 基本類型basic_string<>菠净,具體的類型string,wstring彪杉,u16string毅往,u...
    龍遁流閱讀 338評論 0 1
  • 思想的影像,久久追尋派近。是空中鳥跡攀唯,是雁渡寒潭,影落心中构哺,蹤跡杳然又歷歷在目革答。 思想的矛盾在一心中狂亂馳騁战坤,繞世界走...
    jingtu閱讀 446評論 0 0