9-3 自我挑戰 :混合查詢
9-3-1 自我挑戰:列印班級名冊 (A) 系統需求:PM8_1 請在 course_db 資料庫上製作一只可以列印各班級名冊的網頁,如下: n 『表單網頁』:下拉式選擇班級名稱。 n 『執行網頁』:輸出該班級名冊,依學號、姓名、性別、郵件地址、地址順序印出。 (B) SQL 系統分析提示 當然利用巢狀、合併查詢技巧都可以達到目的,但我們還是希望用混合技巧來作看看。如下圖所示,我們先利用班級名稱(進四資管二丙)由 classes 資料表查詢到它的 classes_ID,再利用它與 students 資料表合併,如下圖。
我們直接用 SQL 命令操作如下:
9-3-2 自我挑戰:查詢學生各科成績 (A) 系統需求:PM8_2 請在 course_db 資料庫製作一支可供學生查詢這學期各科學期成績的網頁,如下: n 『表單網頁』:可供輸入學生學號。 n 『執行網頁』:輸出該學生這學期修讀科目與分數,依課程代碼、課程名稱、必選修、學分數與成績之順序印出。 (B) SQL 系統分析 我們將本題目有關的系統關聯圖畫出來,如下圖。執行網頁收到查詢學號 (student_ID) 後,由 select_course 查詢出該生修了哪些課程及分數 {open_course_ID, final} (as A),再與 open_course 資料表合併查詢出開課編碼(open_course_ID) 與課程代碼的對應關係,產生了 {course_ID, final} (as C),它再與 all_course 資料表合併,查詢出所修課程的詳細資料。
值得注意的是,學生並非只修一門課,因此,此題目要用巢狀技巧非常困難,如果使用合併技巧,因它需要合併 4 張資料表,所產生的暫存表一定非常大,也可以發現用混合技巧,不但很容易,負荷也減少許多。我們直接用 SQL 命令操作如下:
9-3-3 自我挑戰:查詢教師開課及班級 (A) 系統需求:PM8_3 請在 course_db 資料庫製作一支可供查詢教師這學期開了那些課程及班級名稱,如下: n 『表單網頁』:可供下拉式選擇教師姓名。 n 『執行網頁』:輸出該教師這學期開課資料,依班級名稱、課程名稱、必選修與學分數之順序印出。 (B) SQL 系統分析 我們利用 course_db 關聯圖找出相關訊息如下圖。
SQL 程式提示如下:
|
翻轉工作室:粘添壽
資料庫程式設計:
翻轉電子書系列:
|