資料庫系統概論第 五章 多重子查詢操作   上一頁    下一頁

5-2 比較運算子連接

內容:

  • 5-2-1 範例研討:查詢系所規劃課程

  • 5-2-2 範例研討:查詢低於平均分數同學

  • 5-2-3 自我挑戰:列印班級名冊

  • 5-2-4 自我挑戰:系別教師名冊

上層查詢語句是否執行是依照下層子句查詢結果之比較而決定,比較運算子有:等於(=)、大於(>)、小於(<)、、等等。

5-2-1範例研討:查詢系所規劃課程

(A)程式功能:Ex5_1

請查詢『資訊管理系』全學年規劃有哪些課程,結果如下:

(B)系統分析:

  • 各系全學年所規劃課程皆紀錄於 all_course 表內,但它僅記錄系別代碼(Dep_ID),如下:(擷取部分資料)

  • 系別名稱與系別代碼是登錄於 department 表內,如下:(擷取部分資料)

  • 所以我們必須由 department 表中查詢出『資訊管理系』的代碼如何,如下:

Select dep_ID

From department

Where dep_name = '資訊管理系');

  • 得到 Dep_ID = 11 後,再利用它由 all_course 查詢出資訊管理系所規劃之課程,如下:

Select *

From all_course

Where dep_ID = '11';

(C)程式範例:

吾人將上述兩個子查詢串接起來即可,如下:

Select *

From all_course

Where dep_ID = (Select dep_ID

                             From department

                              Where dep_name = '資訊管理系');

5-2-2範例研討:查詢低於平均分數同學

(A)程式功能:Ex5_2

請查詢修讀資料庫系統(開課代碼 open_course_ID = 1) 低於平均分數同學的學號(student_ID)與分數 (final),結果如下:

(B)系統分析:

  • 全校學生選課與成績都登錄於 select_course 表格內,我們先查出修讀 open_course_ID = 1 學生的平均分數,如下:

Select avg(final)

From select_course

Where open_course_ID = '1';

  • 得到平均分數後(avg(final) = 83.83),再利用它由同一表格(select_course)查詢修讀 open_course_ID = 1 課程低於或等於平均分數的同學,如下:(符合兩只條件者)

Select student_ID, final

From select_course

Where open_course_ID = '1'

And final <= '83.83';

(C)程式範例:

吾人將上述兩個子查詢串接起來即可,如下:(同表格串接查詢)

Select student_ID, final

From select_course

Where open_course_ID = '1'

And final <= (select avg(final)

                       from select_course

                       where open_course_ID = '1');

5-2-3自我挑戰:列印班級名冊

(A)程式功能:PM5_1

請列印『進四資管二丙』班級名冊,請依照學號(student_ID)、姓名(name)、性別(sex) 與電話(tel)順序,結果如下:

(B)重點提示:

  • 全校學生名冊都登錄於 students 表內,但須先由 classes 表內『進四資管二丙』的班級代碼(class_ID),如下:

Select class_ID

From classes

Where class_name = '進四資管二丙';

  • 得班級代碼後(class_ID= 902113),再利用它由 students 查詢出學生名冊,如下:

Select student_ID, name, sex, tel

From students

Where class_ID = '902113';

  • 接著,將兩子查詢語句串接即可。

5-2-4自我挑戰:系別教師名冊

(A)程式功能:PM5_2

請列印『資訊管理系』教師名冊,請依照教師編號(teacher_ID)、姓名(name)、電話(tel) 與郵件地址 (mailbox) 順序,結果如下:

(B)重點提示:

  • 第一個子查詢由 department 資料表內查詢出資訊管理系的 dep_ID 為何。

  • 第二個子查詢再利用 dep_ID teachers 表內查詢出教師資料。

翻轉工作室:粘添壽

 

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

 

 

翻轉電子書系列: