資料庫程式設計 – PHP+MySQL :第 九章 混合查詢程式 下一頁 |
第九章 混合查詢程式
9-1 混合查詢技巧
9-1-1 混合查詢簡介 只要資料表之間有建立關聯,利用合併查詢技巧幾乎可以查詢到任何訊息,但它的缺點是可能產生巨量的暫存表,甚至可能造成系統當機。我們可以再思考一個關鍵性問題,資料表經過 SQL 敘述處理之後,所產生的結果也是資料表型態的暫存表,如果我們將資料表經過 SQL 處理後產生較小的表格,再來合併的話,就會減少許多不必要的垃圾資料,這就是本章要介紹的混合查詢技巧。 如下圖所示,如果需要合併 3 個表格才能查出結果的話,我們是否可以先將兩個表格利用巢狀查詢得到一個『暫時資料表』,再與另一表格合併得到結果,如果可行的話則可減低許多不必要的系統資源,也增加執行速度。
9-1-2 範例研討:查詢各系全學年課程 (A) 系統需求:Ex9_1 教務處需要一只可以查詢各系全學年規劃課程的網頁,期望查詢網頁如下:
執行網頁的結果如下:
(B) SQL 設計技巧 這個題目使用巢狀或合併技巧都可以達到目的,我們再演化混合技巧來作看看。如下圖所示,我們先由系別名稱(資訊管理系)查詢到 dep_ID,它也是表格型態,再利用它與 all_course 合併,如此就可以減少許多資料量。
SQL 程式設計如下:(假設查資訊管理系($dep_name),可利用 AppServ 測試果)
(C) 網頁製作技巧 『表單網頁』由 department 表中查詢各系所名稱,以供下拉式選單,『執行網頁』再將 department 與 all_course 兩表格以混合查詢出結果,如下圖:
(C) 表單網頁程式範例:Ex9_1-form.php 開啟 department 資料表建立選單方式挑選系別名稱,再傳遞給執行網頁,程式範例如下:
(D) 執行網頁程式範例:
|
翻轉工作室:粘添壽
資料庫程式設計:
翻轉電子書系列:
|