9-4 暫存表格運用
9-4-1 暫存資料表的運用 混合查詢是『子查詢』與『合併查詢』的整合運用,但吾人發現其中最大困難是合併後的『動態資料表』,必須立即連接子查詢或與其他資料表(或動態資料表)合併,有時候真的很難連結。如果我們能產生暫時資料表,再將查詢後的動態資料表儲存起來,對於查詢語句就會比較好編寫,尤其在資料庫程式設計方面就會簡單許多。當查詢運作完成後,再將這些暫存資料表刪除即可。 如下圖所示,首先產生 temp1 與 temp2 兩表格,將 table_1 與 table_2 合併或巢狀查詢結果存入 temp1,再將 temp1 與 table_3 查詢結果存入 temp2 ,最後 temp2 與 table_4 查詢所要的訊息之後,再將 temp1 與 temp2 刪除。
9-4-2 範例研討:查詢學生修課成績 (A) 程式功能:Ex8_7 請製作一只可依學號查詢該生這學期修讀了幾門課,印出課程名稱、必選修、學分數與成績。『表單網頁』如下:
『執行網頁』的結果如下:
(B) SQL 系統分析: 此題目很困難利用巢狀查詢得到結果,利用合併查詢會造成系統負荷增加,雖然利用混合查詢可減少系統負擔,但缺點是必須及時連結臨時表格。如果我們產生一些暫存資料表來承接臨時表格的結果,就能解決此問題。如下圖步驟如下: 1. 利用學號由 select_course 表查出該生這學期修課之 {open_course_ID, final} 並存入 temp1 表內。 2. 將 temp1 與 open_course 表合併,並篩選 A.open_course_ID = B.open_course_ID,取出 {course_ID, final} 再存入 temp2 表。 3. 將 temp2 與 all_course 表合併,並篩選 C.course_ID = D.course_ID,取出 {course_name, required, credit, final} 之結果。 4. 刪除 temp1 與 temp2 暫存表。
SQL 程式設計如下:
(C) 網頁製作技巧: 我們將上圖的 SQL 系統分析,設計網頁如下:
(D) 表單網頁程式範例:Ex9_5-form.php 僅製作一只可以直接輸入學號之表單即可,如下:
(E) 執行網頁程式範例:Ex9_5-action.php 依照上述 SQL 系統分析,程式如下:
|
翻轉工作室:粘添壽
資料庫程式設計:
翻轉電子書系列:
|