資料庫程式設計 – PHP+MySQL 第 九章 混合查詢程式  上一頁     

 

9-5 自我挑戰:暫存表運用

內容:

  • 9-5-1 自我挑戰:查詢班級開課

  • 9-5-2 自我挑戰:查詢教師開課及班級

  • 9-5-3 自我挑戰:查詢系所開課

9-5-1 自我挑戰:查詢班級開課

(A) 系統需求:PM8_4

請在 course_db 資料庫製作一支可查詢班級這學期開了哪些課程,請依課程名稱、授課教師、必選修與學分數之順序印出,如下:

n   『表單網頁』:可供下拉式選擇班級名稱,並傳送班級代碼給『執行網頁』。

n   『執行網頁』:輸出該班級這學期開了那些課程,依授課教師、課程名稱、課程代碼、必選修與學分數之順序印出。

(B) SQL 系統分析

依照 course_db 關聯圖可以觀察出所需查詢的資料表,步驟如下:

1.        『表單網頁』由 classes 表查詢出各系所名稱,提供下拉式選單,並傳送 class_ID 給『執行網頁』。

2.        利用 $class_ID open_course 表查出該班級開課科目及教師代碼 {course_ID, teacher_ID} 並存入 temp1 表內。

3.        temp1 teachers 表合併 (A.teacher_ID = B.teacher_ID),擷取 {name, course_ID } 取得教師姓名,並存入 temp2 表內。

4.        temp2 all_course 表合併,取得課程相關資料。

9-5-2 自我挑戰:查詢教師開課及班級

(A) 系統需求:PM8_5

請在 course_db 資料庫製作一支可查詢教師班級這學期開了哪些課程,請依授課班級、課程名稱、必選修與學分數之順序印出,如下:

n   『表單網頁』:可供下拉式選擇教師姓名,並傳送教師編碼給『執行網頁』。

n   『執行網頁』:輸出該教師這學期開了那些課程,依授課班級、課程名稱、課程代碼、必選修與學分數之順序印出。

(B) SQL 系統分析

依照 course_db 關聯圖可以觀察出所需查詢的資料表,步驟如下:

1.        『表單網頁』由 teachers 表查詢出教師姓名與編碼,提供下拉式選單,並傳送 teacher_ID 給『執行網頁』。

2.        利用 $teacher_ID open_course 表查出該教師授課班級 {course_ID, class_ID} 並存入 temp1 暫存表內。

3.        temp1 classes 合併查詢 (A.class_ID = B.class_ID) 得到授課班級名稱 {class_name, course_ID} 並存入 temp2 暫存表內。

4.        temp2 classes 合併 (C.course_ID = D.course_ID) 得到授課科目的相關資料。

9-5-3 自我挑戰:查詢系所開課

(A) 系統需求:PM8_6

請在 course_db 資料庫製作一支可查詢系所這學期開了哪些課程,請依課程名稱、班級名稱、授課教師、必選修與學分數之順序印出,如下:

n   『表單網頁』:可供下拉式選擇系所名稱。

n   『執行網頁』:輸出該系所這學期開了那些課程,依授課教師、班級名稱、課程名稱、必選修與學分數之順序印出。

(B) 提示:SQL 系統分析

依照 course_db 關聯圖可以觀察出所需查詢的資料表,步驟如下:

1.        『表單網頁』由 department 表查詢出各系所名稱,提供下拉式選單,並傳送 dep_ID 給『執行網頁』。

2.        利用 $dep_ID teachers 查詢出該系所有那些教師的 teacher_ID,並存入 temp1 表。

3.        temp1 open_course 表合併 (A.teacher_ID = B.teacher_ID),並擷取 {course_ID, class_ID} 存入 temp2 表內。其表示該系所教師所開的課程及班級。

4.        temp2 classes 合併 (C.class_ID = D.class_ID),並擷取 {class_name, course_ID} 存入 temp3 表內。取得開課的班級名稱。

5.        temp3 all_course 表合併,取得課程相關訊息。

 

主講人:粘添壽博士

course_db 關聯圖

 

資料庫程式設計 - PHP+MySQL: