中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

mysql子查詢指的是什么

發布時間:2020-11-21 10:45:37 來源:億速云 閱讀:308 作者:小新 欄目:MySQL數據庫

小編給大家分享一下mysql子查詢指的是什么,希望大家閱讀完這篇文章后大所收獲,下面讓我們一起去探討吧!

MySql的子查詢是多表查詢的一個重要組成部分,常常和連接查詢一起使用,是多表查詢的基礎。下面本篇文章就來帶大家了解一下子查詢,希望對你們有所幫助。

什么是子查詢?

子查詢,又叫內部查詢。當一個查詢是另一個查詢的條件時,稱之為子查詢。子查詢可以使用幾個簡單命令構造功能強大的復合命令。子查詢最常用于SELECT-SQL命令的WHERE子句中。

子查詢是一個 SELECT 語句,它嵌套在一個 SELECT、SELECT…INTO 語句、INSERT…INTO 語句、DELETE 語句、或 UPDATE 語句或嵌套在另一子查詢中。

二、子查詢分類

子查詢分為如下幾類:

1、 標量子查詢:返回單一值的標量,最簡單的形式。

2、 列子查詢:返回的結果集是 N 行一列。

3、行子查詢:返回的結果集是一行 N 列。

4、 表子查詢:返回的結果集是 N 行 N 列。

可以使用的操作符:= > < >= <= <> ANY IN SOME ALL EXISTS

一個子查詢會返回一個標量(就一個值)、一個行、一個列或一個表,這些子查詢稱之為標量、行、列和表子查詢。

如果子查詢返回一個標量值(就一個值),那么外部查詢就可以使用:=、>、<、>=、<=和<>符號進行比較判斷;如果子查詢返回的不是一個標量值,而外部查詢使用了比較符和子查詢的結果進行了比較,那么就會拋出異常。

1、 標量子查詢:

是指子查詢返回的是單一值的標量,如一個數字或一個字符串,也是子查詢中最簡單的返回形式。 可以使用 = > < >= <= <> 這些操作符對子查詢的標量結果進行比較,通常子查詢的位置在比較式的右側

示例:

SELECT * FROM article WHERE uid = (SELECT uid FROM user WHERE status=1 ORDER BY uid DESC LIMIT 1)
SELECT * FROM t1 WHERE column1 = (SELECT MAX(column2) FROM t2)
SELECT * FROM article AS t WHERE 2 = (SELECT COUNT(*) FROM article WHERE article.uid = t.uid)

2、MySQL 列子查詢:

指子查詢返回的結果集是 N 行一列,該結果通常來自對表的某個字段查詢返回。

可以使用 = > < >= <= <> 這些操作符對子查詢的標量結果進行比較,通常子查詢的位置在比較式的右側

可以使用 INANYSOMEALL 操作符,不能直接使用 = > < >= <= <> 這些比較標量結果的操作符。

示例:

SELECT * FROM article WHERE uid IN(SELECT uid FROM user WHERE status=1)
SELECT s1 FROM table1 WHERE s1 > ANY (SELECT s2 FROM table2)
SELECT s1 FROM table1 WHERE s1 > ALL (SELECT s2 FROM table2)

NOT IN 是 <> ALL 的別名,二者相同。

特殊情況:

如果 table2 為空表,則 ALL 后的結果為 TRUE;

如果子查詢返回如 (0,NULL,1) 這種盡管 s1 比返回結果都大,但有空行的結果,則 ALL 后的結果為 UNKNOWN 。

注意:對于 table2 空表的情況,下面的語句均返回 NULL:

SELECT s1 FROM table1 WHERE s1 > (SELECT s2 FROM table2)
SELECT s1 FROM table1 WHERE s1 > ALL (SELECT MAX(s1) FROM table2)

3、MySQL 行子查詢:

指子查詢返回的結果集是一行 N 列,該子查詢的結果通常是對表的某行數據進行查詢而返回的結果集。

例子:

SELECT * FROM table1 WHERE (1,2) = (SELECT column1, column2 FROM table2)
//注:(1,2) 等同于 row(1,2)
SELECT * FROM article WHERE (title,content,uid) = (SELECT title,content,uid FROM blog WHERE bid=2)

4、MySQL 表子查詢:

指子查詢返回的結果集是 N 行 N 列的一個表數據。

例子:

SELECT * FROM article WHERE (title,content,uid) IN (SELECT title,content,uid FROM blog)

看完了這篇文章,相信你對mysql子查詢指的是什么有了一定的了解,想了解更多相關知識,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

八宿县| 朝阳市| 喀喇沁旗| 铁力市| 建湖县| 彭泽县| 潜山县| 和林格尔县| 青阳县| 育儿| 太白县| 临武县| 通河县| 错那县| 望奎县| 泸西县| 临邑县| 麟游县| 故城县| 兴国县| 金堂县| 沙坪坝区| 尚义县| 敖汉旗| 逊克县| 巴彦县| 定南县| 宜黄县| 太和县| 开鲁县| 镇沅| 海晏县| 德昌县| 错那县| 新宁县| 广水市| 卢湾区| 鸡泽县| 石泉县| 高安市| 志丹县|