資料庫系統概論第 四章 資料庫操作 - SQL Select   上一頁    下一頁

4-9 模糊條件查詢 - Like

內容:

  • 4-9 模糊條件查詢 - Like

    • 4-9-1 範例研討:查詢住在高雄市教師

    • 4-9-2 範例研討:查詢住在三民區學生

  • 4-10 Group 與 Having 群組查詢

    • 4-10-1 範例研討:查詢教師開課數目

    • 4-10-2 範例研討:查詢開課超過 3 門課老師

    • 4-10-3 自我挑戰:查詢班級開課數

    • 4-10-4 自我挑戰:查詢修課少於 5 人的課程

4-9-1範例研討:查詢住在高雄市教師

(A)程式功能:Ex4_10

請查詢地址在高雄市老師的姓名(name)、電話(tel) 與地址(address),結果如下:

(B)系統分析:

由教師資料表(teachers) 中查詢地址有類似高雄市名稱。

(C)程式範例: Ex4_10

其中 % 表示任何字元。

Select  name  as "姓名", tel as "電話", address as "地址"

From teachers

Where address Like '高雄市%';

4-9-2範例研討:查詢住在三民區學生

(A) 程式功能:Ex4_11

請查詢地址在高雄市三民區學生的姓名(name)、電話(tel) 與地址(address),結果如下:

(B)系統分析:

由學生資料表(teachers) 中查詢地址有類似高雄市三民區字樣者。

(C)程式範例:

其中 % 表示任何字元。

Select  name  as "姓名", tel as "電話", address as "地址"

From students

Where (address Like高雄市%’) and (address Like ‘%三民區%’);

4-10 Group Having 群組查詢

將查詢出來結果將某一欄位結果成一群組 (group),並可以利用 having 語句附加條件。

4-10-1範例研討:查詢教師開課數目

(A) 程式功能:Ex4_12

請查詢全校每一位老師開課數目,結果如下:

(B)系統分析:

全校教師開課課程皆登錄於 open_course 資料表內,可利用 (select * from open_course;) 查詢出所有教師開課課程,但我們可利用 order by 將同一位教師成一個群組,再利用 count(*) 計算每一群組的數目,如下圖所示。

(C)程式範例:

Select  teacher_ID  as "教師編號", count(*) as "開課數目"

From open_course

group by teacher_ID;

4-10-2範例研討:查詢開課超過 3 門老師

(A) 程式功能:Ex4_13

請查詢開課超過() 3 門課的老師代碼與開課數,結果如下:

(B) 系統分析:

同上題,但僅列印出超出() 3 門課老師(Having count(*) >=3)

(C) 程式範例:

Select  teacher_ID  as "教師編號", count(*) as "開課數目"

From open_course

group by teacher_ID

Having count(*) >= 3;

4-10-3自我挑戰:查詢班級開課數

(A) 程式功能:PM4_8

請查詢這學期全校各班級各開了幾門課,查詢結果如下:

(B) 系統提示:

全校這學期開課狀態皆登錄於 open_course 資料表內,每一紀錄包含 open_course_ID(開課代碼)course_ID(課程代碼)class_ID(班級代碼)、教師編號(teacher_ID),我們只要查詢此資料表,並以 class_ID 為群組,即可計算出每一班級開了幾門課。

4-10-4自我挑戰:查詢修課人數少於 5 人的課程

(A) 程式功能:PM4_9

請查詢修課人數少於 5 人的課程,查詢結果如下(以開課代碼 open_course_ID 表示)

(B) 系統提示:

全校學生選課狀況登錄於 select_course 表內,只要查詢該表格,以 open_course_ID 為群組(count(*)),再過濾輸出少於 5 筆記錄即是,select_course 資料表內容如下:

 

翻轉工作室:粘添壽

 

資料庫系統概論(含邏輯設計)

 

翻轉電子書系列: