資料庫程式設計 – PHP+MySQL 第 七章 巢狀查詢程式  上一頁     

 

7-6 自我挑戰

內容:

  • 7-6-1 自我挑戰:查詢系所教師

  • 7-6-2 自我挑戰:查詢平均分數

  • 7-6-3 自我挑戰:查詢低於平均分數

  • 7-6-4 自我挑戰:查詢選課名單

7-6-1 自我挑戰:查詢系所教師

(A) 系統需求:PM7_1

請在 course_db 資料庫上建立一只可以依系所名稱查詢該系教師名冊,期望功能如下:

l   『表單網頁』:提供下拉式選擇系所名稱,再傳送 dep_ID 給執行網頁。

l   『執行網頁』:利用 dep_ID teachers 表查出該系教師,並顯示結果。

(B) SQL 系統分析

全校教師資料登儲存於 teachers 表內,以 dep_ID 標示是屬於哪一系教師,吾人須由 department 表查出所查詢系別名稱的 dep_ID,如下圖所示:

7-6-2 自我挑戰 查詢平均分數

(A) 系統需求:PM7_2

請在 course_db 資料庫上建立一只可以利用學生學號,來查詢該生這學期所修各門課 (以開課代碼表示) 的成績,以及平均分數,期望『表單網頁』如下:

『執行網頁』如下:

 (B) SQL系統分析

學生修課與各科成績登錄於『select_course』資料表內,但表內僅登錄學生修課與各科成績,並沒有記錄總平均分數。系統要求列印各科成績與學期總平均分數。因此,我們需要兩個查詢動作,第一個查詢學生修哪些科目 (開課代碼 open_course_ID)及成績,如下圖:

SQL 程式如下:

select student_ID,  final

from select_course

where student_ID = $student_ID;

第二個是查詢學生總平均平均分數,如下圖。

SQL 程式如下:

select student_ID,  avg(final)

from select_course

where student_ID = $student_ID

group by student_ID;

(C) 網頁製作技巧

『表單網頁』上僅製作可以輸入『學號』的選單,並傳送 student_ID即可,『執行網頁』需執行兩個 SQL 命令並將結果顯示,如下:

7-6-3 自我挑戰:查詢低於平均分數

(A) 系統需求:PM7_3

請在 course_db 資料庫下,製作一個可以用課程名稱,查詢修該課程低於平均分數的同學,並列出其學號與成績,期望『表單網頁』如下:

『執行網頁』查詢結果如下:

 (B) SQL 系統分析

學生修課與成績都登錄於 select_course 資料表內,我們先篩選出該課程修課同學,並利用 avg() 函數計算平均值,再以同表格查詢低於平均值的學生,是屬於同表格連結查詢。

 SQL 程式如下:

SELECT student_ID, final

from select_course

where open_course_ID = ‘$open_course_ID’

and final <= (select avg(final)

              from select_course

              where open_course_ID = ‘$open_ciurse_ID’);

7-6-4 自我挑戰:查詢選課名單

(A) 系統需求:PM7_4

請在 course_db 資料庫上,製作一個可以用開課編號,查詢修該課程學生的名冊,期望『表單網頁』如下:

『執行網頁』的查詢結果的如下:

 (B) SQL 系統分析

學生修課與成績都登錄於 select_course 資料表內,我們先篩選出該課程修課同學(取得 student_ID),再利用student_ID students 資料表內篩選出學生資料,但修該門課的同學不止一位,因此需要用 in 連結。

 SQL 程式:

SELECT *

from students

where student_ID in (select student_ID

                 from select_course

                 where open_course_ID = "1");

翻轉工作室:粘添壽

course_db 關聯圖

 

資料庫程式設計:

 

 

 

翻轉電子書系列: