15、集合查詢
學習目標:
1、熟練掌握交集、並集、差集等結合查詢的使用
學習過程:
一、建立今天課程所需要的資料庫
1、建表
我們先設計今天要操作的表的結構,使用powerDesigner設計的E-R圖如下:
2、生成sql語言如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
200 ),
null ,
|
3、初始化資料如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
|
大家可以先把表建好,插入初始化資料後再做進行學習。
二、集合查詢
我們先學習第一個比較簡單的內容就是資料庫的集合查詢,這裡集合和我們數學的集合論是一樣的。這裡主要學習的就是並、交、差幾個集合運算。如下圖:
如下面兩個查詢語句,第一個查詢員工表的員工id和工作id。
1 |
|
輸入為:
第二個查詢員工的工作記錄表的員工id和工作id。
select employee_id ,job_id from job_history
下面分別對其進行集合運算
1、UNION並集運算子
UNION運算子從兩個查詢中返回消除重複之後的結果,注意union和union all的區別。
1 2 3 4 5 |
|
輸入結果如下:
2、INTERSECT交集運算子
交集就是顯示兩個集合都有資料,如下面的程式碼:
1 2 3 |
|
運算結果如下:
3、MINUS差集運算子
差集和上面介紹的兩個運算不同,它不滿足交換律,也就是說兩天查詢語句先後順序不同,得到的結果是不一樣的。如下面程式碼:
1 2 3 |
|
運算結果如下: