(MySQL筆記)MySQL子查詢

2021-07-02 13:58:43 字數 1221 閱讀 6593

mysql的select語句中支援子查詢。子查詢是將乙個select語句的查詢結果作為中間結果,供另乙個select語句查詢呼叫,子查詢也叫做子選擇或者巢狀選擇。如:

select studentno

from

(select studentno,***

from student

where age > 18)

as student18

where ***=

'm'

從student表中查出年齡大於18的學號(studentno)和性別(***),作為中間結果集,並被命名為student18,然後從student18表中查出性別(***)是男的('m')的學生的學號(studentno)。

藍色部分就是乙個子查詢。

子查詢分類

子查詢按返回結果集的不同分為4種:錶子查詢,行子查詢,列子查詢和標量子查詢

錶子查詢:返回的結果集是乙個表集合,n行n列(n>=1)。錶子查詢經常用於父查詢的from子句中。

行子查詢:返回的結果集是乙個表集合,一行n列(n>=1)。行子查詢可以用於福查詢的from子句和where子句中。

列子查詢:返回的結果集是乙個表集合,n行一列(n>=1)。

標量子查詢:返回的結果集是乙個表集合,一行一列,也就是乙個標量值。可以指定乙個標量表示式的任何地方,都可以用乙個標量子查詢。

如:行子查詢

select studentno

from student

where

(***,age)=(

select ***,age

from student

where studentno = 15

)

查出學號(studentno)是15的學生的性別和年齡(***,age),是乙個行表示式。然後查出性別和年齡與這個學生性別和年齡一樣的學生的學號。

標量子查詢如:

select studentno

from student

where *** =

(select ***

from student

where studentno = 15

)

查出學號(studentno)是15的學生的性別***,是乙個標量表示式。然後查出性別與這個學生性別一樣的學生的學號。

mysql求和 子查詢 MySQL子查詢

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

MySQl學習筆記(子查詢)

修改資料表 新增單列 alter table tbl name add column col name column definition first after col name 省略first after col name將預設你所新增的列位於所有列的最後面 例 alter table user...

MySQL子查詢筆記整理

1 子查詢型別 1 where型 把內層查詢的結果作為外層查詢的比較條件 2 from型 把內層的查詢結果當成臨時表,供外層sql再次查詢。查詢結果集可以當成表看待。臨時表要使用乙個別名。3 exists型 把外層sql的結果,拿到內層sql去測試,如果內層的sql成立,則該行取出。內層查詢是exi...