普考申論題
113年
[統計] 資料處理概要
第 一 題
📖 題組:
在關聯式資料庫中建立一個名為「圖書」資料表,其欄位結構與資料表內容如下表所示: 圖書編號 | 圖書名稱 | 出版社 | 作者 | 售價 | 數量 --- | --- | --- | --- | --- | --- B01 | Visual Basic 6手冊 | A公司 | Mary | 350 | 5 B02 | Excel 2023 | A公司 | David | 499 | 1 B03 | Access 2023 | B公司 | Mary | 600 | 2 B04 | Python訓練手冊 | C公司 | Kathy | 355 | 3 B05 | 手把手Word 2023 | A公司 | Mary | 400 | 2 B06 | E世代網頁設計 | B公司 | Kim | 555 | 5 B07 | T-SQL 2023程式設計 | A公司 | Helen | 699 | 2
在關聯式資料庫中建立一個名為「圖書」資料表,其欄位結構與資料表內容如下表所示: 圖書編號 | 圖書名稱 | 出版社 | 作者 | 售價 | 數量 --- | --- | --- | --- | --- | --- B01 | Visual Basic 6手冊 | A公司 | Mary | 350 | 5 B02 | Excel 2023 | A公司 | David | 499 | 1 B03 | Access 2023 | B公司 | Mary | 600 | 2 B04 | Python訓練手冊 | C公司 | Kathy | 355 | 3 B05 | 手把手Word 2023 | A公司 | Mary | 400 | 2 B06 | E世代網頁設計 | B公司 | Kim | 555 | 5 B07 | T-SQL 2023程式設計 | A公司 | Helen | 699 | 2
📝 此題為申論題,共 3 小題
小題 (一)
寫出 SQL 語法查詢圖書名稱包含字串”手”的圖書名稱、出版社、作者的查詢結果,如下表所示:(10 分)
圖書名稱 | 出版社 | 作者
--- | --- | ---
Visual Basic 6手冊 | A公司 | Mary
Python訓練手冊 | C公司 | Kathy
手把手Word 2023 | A公司 | Mary
思路引導 VIP
看到「包含某字串」的關鍵字,應直覺聯想到 SQL 的模糊比對運算子 LIKE。在本題中,需要找出「手」字出現在任何位置的資料,因此應使用萬用字元 % 包圍目標字串。撰寫時應注意:1. SELECT 後方僅列出題目要求的特定欄位。2. WHERE 子句中使用 LIKE '%手%'。
小題 (二)
寫出 SQL 語法查詢作者為”Mary”且數量小於 3 的圖書名稱、作者、數量,且圖書名稱為遞減排序的查詢結果,如下表所示:(15 分)
圖書名稱 | 作者 | 數量
--- | --- | ---
手把手Word 2023 | Mary | 2
Access 2023 | Mary | 2
思路引導 VIP
本題涉及「多重條件篩選」與「結果排序」。1. 篩選條件:使用 AND 連結「作者」與「數量」兩個條件。2. 排序:使用 ORDER BY 子句,並特別注意題目要求的「遞減排序」需加上關鍵字 DESC。解題順序應為:挑選欄位 -> 指定資料表 -> 設定條件 -> 設定排序。
小題 (三)
寫出 SQL 語法查詢新增一個欄位進價(內容為售價*數量),其數值介於 1000 至 2000 的圖書名稱、售價、數量、進價的查詢結果,如下表所示:(15 分)
圖書名稱 | 售價 | 數量 | 進價
--- | --- | --- | ---
Visual Basic 6手冊 | 350 | 5 | 1750
Access 2023 | 600 | 2 | 1200
Python訓練手冊 | 355 | 3 | 1065
T-SQL 2023程式設計 | 699 | 2 | 1398
思路引導 VIP
本題的重點在於「運算欄位」的處理。題目要求的「進價」並非原本表中的欄位,而是在 SELECT 時透過算式 售價 * 數量 產生,並以 AS 給予別名。接著在篩選範圍時,可以使用 BETWEEN ... AND ... 或是標準的比較運算子。注意在某些資料庫系統中,WHERE 子句中不能直接使用 SELECT 定義的別名,必須重複寫一遍運算式。