mysql 什麼是子查詢 mysql子查詢是什麼

2021-10-18 10:00:02 字數 2264 閱讀 3546

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 行一列,該結果通常來自對錶的某個字段查詢返回。

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

可以使用 in、any、some 和 all 操作符,不能直接使用 = > < >= <= <> 這些比較標量結果的操作符。

示例: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子查詢 mysql子查詢指的是什麼

mysql子查詢指的是什麼 閱讀 105 什麼是子查詢?子查詢,又叫內部查詢。當乙個查詢是另乙個查詢的條件時,稱之為子查詢。子查詢可以使用幾個簡單命令構造功能強大的復合命令。子查詢最常用於select sql命令的where子句中。子查詢是乙個 select 語句,它巢狀在乙個 select sel...

mysql變數包括什麼意思 什麼是mysql變數?

什麼是mysql的變數?mysql變數分為幾種?在mysql資料庫中佔據了怎樣的地位?今天將為你講解mysql的變數。mysql變數是mysql資料庫中的基礎知識,下面就為您詳細介紹mysql變數,如果您對此方面感興趣的話,不妨一看,相信對您有所幫助。mysql變數介紹 mysql伺服器的系統變數,...

mysql求和 子查詢 MySQL子查詢

到現在為止,我們已經表明,以select宣告是乙個簡單的查詢。該單個語句從單個資料庫表中檢索資料。sql還同意建立乙個子查詢。即巢狀在其他查詢的查詢。下列實施例給出巢狀查詢。一種表示訂單資訊儲存,包含訂單號,客戶id。訂購日期。例如以下所看到的 一張表示儲存訂單物品資訊,例如以下 另一張表儲存的是客...