資料準備:
員工表staff
一、集合查詢
集合操作主要包括並操作union、交操作intersect和差操作except。但是intersect和except無法在mysql中使用,只能在oracle中使用.
限定條件:
(1)子結果集的列數必須相同;
(2)對應項的資料型別也必須相同。
(3)子結果集要具有相同的結構。
(4)每個子結果集不能包含order by和compute子句。
1、uinion(並)
並集:返回各子結果集所有記錄組合在一起的新結果集。
eg:查詢年齡小於26或者性別是'female'的員工資訊
等同於:
注:使用uinion時,系統會自動去掉重複元組。若想保留重複元組則用uinion all操作符。
2、mysql中利用in實現交集
交集:返回左邊結果集和右邊結果集中都有的記錄
例:查詢年齡小於26且性別是'female'的員工資訊
3、mysql中利用not in實現差集
差集:返回左邊結果集中已經有的記錄,而右邊結果集中沒有的記錄
例:查詢年齡小於26且性別不是'female'的員工資訊
4、結果集的排序
注:order by是對整個運算後的結果排序,並不是對單個資料集
例:查詢年齡小於26或者性別是'female'的員工資訊,且根據年齡降序排列。
二、基於派生表的查詢
子查詢既可以出現在where子句中,還可以出現在from子句中,這時子查詢生成的臨時派生表成為主查詢的查詢物件。
注:通過from子句生成派生表時,as關鍵字可以省略,但必須為派生關係指定乙個別名
例:查詢高於同一部門員工的平均年齡的員工資訊。
mysql 集合 MySql集合查詢
select語句的查詢結果是元組的集合,所以多個select語句的結果可進行集合操作。集合操作主要包括並操作union 交操作intersect 差操作except。注意,參加集合操作的各查詢結果的列數必須相同 對應的資料型別也必須相同。本示例中的資料表有student,sc,course三個,資料...
MySQL之集合之間的查詢
根據需求有以下查詢情況 判斷乙個元素是否在集合裡面。可用 in 判斷,要求傳入引數為集合,然後通過 collection list item i index index open close separator foreach 對集合進行整理。另乙個方法是使用 find in set 函式,這個要求...
mysql集合屬性 MySql集合查詢
select語句的查詢結果是元組的集合,所以多個select語句的結果可進行集合操作。集合操作主要包括並操作union 交操作intersect 差操作except。注意,參加集合操作的各查詢結果的列數必須相同 對應的資料型別也必須相同。本示例中的資料表有student,sc select語句的查詢...