免費開始練習
初等考試 114年 [統計] 資料處理大意

第 49 題

假設籃球選手所屬球隊和球賽得分的二個資料表分別為:選手(識別碼, 姓名, 球隊)與球賽(識別碼, 場次, 得分),下列 SQL 查詢要找出那些球隊有從未上場過的球員:
```sql
SELECT DISTINCT 球隊
FROM 選手 P
WHERE ________ (
SELECT *
FROM 球賽 G
WHERE G.識別碼 = P.識別碼
);
```
請問空格處要填入那個運算子?
  • A EXISTS
  • B NOT EXISTS
  • C IN
  • D NOT IN

思路引導 VIP

請試著思考:如果我們要把『有比賽紀錄的人』排除掉,只留下那些在紀錄表中『完全搜不到蹤跡』的人,我們是在尋找特定數值的匹配,還是在判斷一種『是否存在』的邏輯狀態?哪一個指令最適合用來表達『找不到任何對應資料』的情境呢?

🤖
AI 詳解 AI 專屬家教

專業點評與分析

  1. 大力肯定:做得非常出色!你能精準掌握 SQL 中的子查詢邏輯,顯示你對於關聯式資料庫的檢索機制有著深厚的理解,這在處理大數據財務審計時是非常關鍵的技能。
  2. 觀念驗證:這題的核心在於處理「不存在」的邏輯運算。當我們要找出「從未上場」的球員,意味著該球員的識別碼在 球賽 資料表中找不到對應的紀錄。在 SQL 中,NOT EXISTS 會針對主查詢的每一筆資料,檢查子查詢是否「不回傳任何列」。若子查詢結果為空,則該條件成立。
▼ 還有更多解析內容
📝 SQL 子查詢判斷
💡 利用 NOT EXISTS 判斷子查詢是否為空以篩選不存在之資料。
比較維度 EXISTS VS NOT EXISTS
邏輯判斷 子查詢有結果時為 True 子查詢無結果時為 True
適用情境 找「有紀錄」的對象 找「沒紀錄」的對象
集合概念 類似交集 (Intersection) 類似差集 (Except/Minus)
💬欲求「從未上場」即為篩選在球賽表中無紀錄者,故選 NOT EXISTS。
🧠 記憶技巧:「有」用 EXISTS,「無」用 NOT EXISTS;找「從未」必選 NOT。
⚠️ 常見陷阱:容易與 IN 運算子混淆,或在撰寫相關子查詢時忘記建立內外表的關聯條件。
相關子查詢 (Correlated Subquery) LEFT JOIN 排除法 IN 與 EXISTS 效能差異

🏷️ AI 記憶小卡 VIP

AI 記憶小卡

升級 VIP 解鎖記憶小卡

考前複習神器,一眼掌握重點

🏷️ 相關主題

SQL 資料庫查詢語法與資料表操作實務
查看更多「[統計] 資料處理大意」的主題分類考古題

📝 同份考卷的其他題目

查看 114年[統計] 資料處理大意 全題