什麼是子查詢語句?
指在一條select語句中,嵌入了另一條select語句,那麼被嵌入的select語句就稱之爲子查詢語句。
什麼是子查詢?
當一個查詢是另一個查詢的條件時,該查詢稱之爲子查詢。
在計算機中語言SELECT-SQL語句中,子查詢就是嵌套查詢下層的程序模塊。
子查詢分類
1、按照功能分
標量子查詢:返回一個數據(一行一列)
列子查詢:返回一列(一列多行)
行子查詢:返回一行(一行多列)
表子查詢:返回一張表(多行多列)
exists子查詢:返回1或者0(類似布爾操作,mysql中沒有布爾值)
2、按照位置分
where子查詢:作爲條件(標量子查詢、列子查詢、行子查詢)
from子查詢:作爲數據源(表子查詢)
標量子查詢
標量子查詢得到的結果只有一個值。
select * from 數據源 where 條件判斷 運算符
(select * from 數據源 where 條件判斷);
列子查詢
主查詢 where 條件 in(列子查詢);
例:想獲取已經有學生在班的所有班級名稱
行子查詢
字段元素:指一個字段對應的值。
行元素:指多個字段合起來爲作爲一個元素參與運算,把這種情況稱之爲行元素。
主查詢 where 條件【(行元素)】 = (行子查詢);
例:獲取班級上年齡最大且身高最高的學生
獲取班級最大年齡、獲取班級最高身高,然後找到對應學生
表子查詢
select 字段列表 from (表子查詢) as 表別名【where等關鍵字均可】;
例:獲取每個班上最高的學生
exists子查詢
exists表示根據查詢得到的結果進行判斷:如果存在,那麼返回1,否則返回0.
注意:where 1; 表示永遠爲真。
主查詢 where exists(子查詢);