免費開始練習
地特四等申論題 105年 [資訊處理] 資料處理概要

第 一 題

📖 題組:
一關聯式資料庫之綱要(relational database schema)如下: 產品(編號,名稱,價格) 客戶(身分證號,姓名,地址,年齡) 購買(身分證號,編號,數量)
📝 此題為申論題,共 2 小題

小題 (一)

請用 SQL 指令來查出所有購買產品的客戶中,年齡小於 15 歲的客戶所購買的產品名稱、數量和這些客戶的姓名。(10 分)

思路引導 VIP

面對 SQL 查詢題,首先確定「SELECT」需要輸出的欄位(產品名稱、數量、客戶姓名),接著找出這些欄位所在的資料表。透過主鍵與外鍵(身分證號、編號)將三個資料表進行「JOIN」,最後在「WHERE」子句加上題目要求的篩選條件(年齡 < 15)。

🤖
AI 詳解
AI 專屬家教

【解題思路】確認所需欄位分布於三個資料表中,需透過外部鍵條件進行合併(JOIN),並加上年齡條件進行資料篩選。 【詳解】 Step 1. 確定查詢欄位 (SELECT):產品.名稱、購買.數量、客戶.姓名

小題 (二)

今欲查出所有沒有購買任何產品之客戶身分證號和姓名,某位資料庫管理員所寫下的 SQL 指令如下: SELECT 身分證號,姓名 FROM 客戶,購買 WHERE 客戶.身分證號 ≠ 購買.身分證號; 請問他的寫法是否正確?若不正確,請說明錯處,並寫出正確的 SQL 查詢。(15 分)

思路引導 VIP

考生應先辨識 FROM A, B 產生笛卡兒積的特性,理解單純使用 != 無法達到差集(Difference)的過濾效果。要找出「沒有...」的關聯資料,通常需要使用 NOT INNOT EXISTS 子查詢,或透過 LEFT JOIN 搭配 IS NULL 條件來解題。

🤖
AI 詳解
AI 專屬家教

【破題】 該資料庫管理員的 SQL 寫法「不正確」。 【論述】

升級 VIP 解鎖