必修單元 A:數據庫

5.0 導入與本頁工具

本頁會循序介紹必修單元 A 之「數據庫」範圍,並配合一個可即時操作的數據庫工具,讓你可以邊學邊做。 你會練習:建立簡單數據表、利用表單輸入資料、進行單表查詢(選取/篩選/排序)、製作基本報表,以及解讀簡單 SQL(結構化查詢語言)語句。

重點提醒:本頁的練習以「單表」為主(符合必修要求),但你亦會在頁末看到「同一個數據庫可以包含多張數據表」的完成品示例。

練習方式:同一個引擎 + 每個課題獨立 sandbox

  • 數據庫工具的引擎只會載入一次,操作更流暢。
  • 每一個課題都有自己的練習區(sandbox):你在某一節所做的改動,不會影響其他課題。
  • 每一節都提供「重置」按鈕:需要回到起點時,一按即可清除該練習區的改動。
  • 工具右上角提供「顯示其他數據表」開關:預設只顯示本節需要的重點數據表;如課堂需要或你想延伸探索,可打開以查看其他表。
如你在工具內看不到你想要的分頁,請留意上方分頁列(Tables / Forms / Queries / Reports / SQL Console)。 本頁會在每一節的「操作教學」中指示你應該使用哪一個分頁。

5.1 DBMS 實作:簡單表、欄類型、基本輸入

重點

  • 理解數據庫管理系統(DBMS)在「儲存、管理、查詢」資料上的角色,以及「數據庫 → 數據表 → 欄 → 紀錄」的層次。
    操作教學:
    1. 按上方「開啟本節練習」打開工具,工具會停留在 Tables 分頁。
    2. 在左側列表觀察:目前練習區是空白的(刻意設計),你將由零開始建立一張新數據表。
    3. 你建立好數據表後,左側會出現表名;點擊表名即可進入該表的資料檢視(Datasheet)。
  • 能建立一張簡單數據表,設定欄名與資料類型,並為重要欄加入基本約束(例如:必填、唯一)。
    操作教學(示例:建立 students 表):
    1. Tables 分頁按 + Table
    2. 在「Table Name」輸入:students
    3. 依次加入以下欄(每列一個欄):
    4. 建議欄設計
      • StudentID:Type 選 TEXT;勾選 PK(主鍵)及 NN(不可留空)
      • Name:Type 選 TEXT;勾選 NN
      • ClassID:Type 選 TEXT;勾選 NN
      • Score:Type 選 INTEGER;可先不勾 NN(允許暫時空白)
    5. Save 儲存數據表。
    6. 成功後,你會在左側看到 students,點擊它進入資料檢視。
  • 能在資料檢視(Datasheet)輸入基本資料,並分辨「一格是欄值、一行是一筆紀錄」。
    操作教學:
    1. 在左側點選 students
    2. 在右側選擇子分頁 Datasheet(如未顯示,請先確認你已點選該數據表)。
    3. 嘗試新增 2–3 筆紀錄,例如:
    4. 示例紀錄
      StudentID = S101,Name = 陳小華,ClassID = 4A,Score = 76
    5. 若你輸入了重覆的 StudentID(已設為主鍵),系統會提示錯誤;這正是約束保護數據一致性的例子。
  • 懂得用簡單約束提升數據質素,例如用 CHECK 限制數值範圍。
    操作教學(為 Score 加入範圍約束):
    1. Tables 分頁選擇 students,切到子分頁 Design
    2. 找到 Score 那一行,在「CHECK」欄輸入:Score BETWEEN 0 AND 100
    3. Save
    4. 回到 Datasheet,嘗試輸入 Score = 120,觀察系統如何阻止不合理數值。
提示:如你忘記了某個名詞或規則,可用上方按鈕翻閱 flashcard。

在必修範圍內,你不需要建立非常複雜的數據庫結構,但你必須理解 DBMS 如何把資料變成「可管理」的形式。最核心的概念是: DBMS 不是單純儲存資料,而是透過「數據表結構(欄)+規則(約束)」把資料整理成一致而可靠的狀態,方便之後查詢與輸出。

建表時,先想清楚「你要記錄甚麼」:例如學生資料最少要有 StudentID、Name、ClassID。然後再想「哪一些欄必須唯一、必須存在」, 例如 StudentID 不應重覆,所以適合做主鍵;Name 不能空白,所以可設為不可留空。

最後一步是把資料放進去並檢查約束是否有效。若你發現系統能夠阻止重覆 StudentID 或不合理的分數, 代表你的表設計已能協助你維持資料的正確性,後續做查詢與報表時就會更可靠。

Check Point 5.1:概念快測

請按「下一題」開始。

5.2 Form 入數

重點

  • 明白表單(Form)的用途:用較友善的介面把資料寫入數據表,減少漏填與錯填。
    操作教學:
    1. 按「開啟本節練習」打開工具,系統會載入有示例資料的 students 表。
    2. 在分頁列選擇 Forms,你會看到以 students 表為基礎的輸入介面。
    3. 表單每一項輸入框對應數據表的一個欄,提交後會新增一筆紀錄。
  • 能用表單新增紀錄,並懂得回到 Datasheet 驗證資料是否成功寫入。
    操作教學:
    1. Forms 分頁填寫:
    2. StudentID = S200,Name = 何家明,ClassID = 4B,Score = 61
    3. 按表單的提交按鈕(Submit / Add / Insert)。
    4. 切換到 Tables → Datasheet,檢查是否出現新紀錄(可用排序或查詢協助尋找)。
  • 能理解表單輸入仍會受數據表約束影響,並能根據錯誤訊息修正輸入。
    操作教學(故意觸發一次錯誤):
    1. 在表單中嘗試輸入一個已存在的 StudentID(例如 S001)並提交。
    2. 觀察系統提示:因 StudentID 是主鍵,不能重覆。
    3. 把 StudentID 改為新值(例如 S201)後再提交。
  • 能把「輸入介面」與「資料設計」連繫:資料設計越清晰(欄名、約束越合理),表單越容易正確輸入。
    操作教學:
    1. 回到 Tables → Design 檢視 students 的欄設計(PK、NN、CHECK 等)。
    2. 思考:若 Score 沒有範圍約束,表單便難以阻止 999 這類輸入;相反,有約束時 DBMS 會替你把關。
提示:表單看似簡單,但它背後其實要配合數據表結構與約束,才能真正減少錯誤。

表單的價值不只是「看起來比較易輸入」,而是它能讓輸入流程更一致、降低錯誤率。當數據表設計清晰, 表單就能直接反映你的設計:哪些欄必須填、哪些值不合理、哪些欄不可重覆。

但要注意:表單不是萬能。最可靠的做法,是把關鍵規則放到數據表的約束中(例如主鍵、CHECK), 表單則負責提供清晰的輸入介面。這樣即使資料由其他方式進入(例如匯入或 SQL),依然能保持一致。

完成表單輸入後,請養成習慣回到 Datasheet 驗證資料是否真的寫入,以及是否符合預期。 這是最簡單但最有效的「自我檢查」。

Check Point 5.2:表單輸入判斷題

請按「下一題」開始。

5.3 單表 Query:select / filter / sort

重點

  • 掌握單表查詢的三件事:選取(SELECT 取哪些欄)、篩選(WHERE 留哪些紀錄)、排序(ORDER BY 以甚麼次序顯示)。
    操作教學:
    1. 按「開啟本節練習」進入工具,切到 Queries 分頁。
    2. 在「Base table」選擇 students(如已預設選好可略過)。
    3. 在 fields 區把需要顯示的欄勾選(例如 StudentID、Name、ClassID、Score)。
    4. 先不加任何條件,按 Preview 查看「純選取」結果。
  • 能做基本篩選(filter):只顯示符合條件的紀錄,例如某班學生或及格學生。
    操作教學(例:只看 4A 並且 Score ≥ 60):
    1. 在 criteria 區新增條件:
      • Field:ClassID;Op:=;Value:'4A'
      • Field:Score;Op:>=;Value:60
    2. Preview,觀察結果是否只剩下符合條件的紀錄。
    3. 如果沒有結果,請檢查:ClassID 是否有加單引號、Score 是否打錯比較符號。
  • 能做基本排序(sort):例如以分數由高至低,並以姓名作第二排序。
    操作教學:
    1. 在 sort 區設定:
      • 第一排序:Field = Score,Direction = DESC
      • 第二排序(可選):Field = Name,Direction = ASC
    2. Preview 檢查排序是否符合預期。
  • 懂得把查詢保存(save)以供之後的報表使用,並知道查詢本身是「結果」,不是「新資料」。
    操作教學:
    1. 完成查詢後,在右側的「Saved Queries」按 Save current query
    2. 輸入名稱(例:q_4A_pass)並確定。
    3. 你可按 Saved query 旁的 Load 將 SQL 送到 SQL Console(方便你學 SQL)。
提示:篩選與排序常被混淆——篩選是「刪走不符合的紀錄」,排序只是「改顯示次序」。

單表查詢是數據庫最常用的能力之一:即使只有一張表,只要你懂得「選取、篩選、排序」,便可以從大量紀錄中找出需要的資訊。 在 DSE 層面,尤其要熟悉 SELECT / WHERE / ORDER BY 的用途與基本語法。

學習查詢時,建議先做「只選取」:把需要的欄顯示出來;再加入 WHERE 條件縮小範圍;最後才 ORDER BY 讓結果更易閱讀。 這種由簡到繁的建構方式,有助你快速找出錯誤位置。

此外,請把查詢視為「從現有資料產生的結果」。你不用改動原始數據表,就可以得到不同角度的輸出;這也是數據庫比單純表格更強的地方。

Check Point 5.3:SQL 關鍵字配對

請按「下一題」開始。

5.4 Report(基本格式化)

重點

  • 理解報表(Report)的定位:把查詢結果整理成易讀、可展示/列印的格式。
    操作教學:
    1. 按「開啟本節練習」進入工具,先到 Queries 建立一個簡單查詢(例如顯示 StudentID、Name、ClassID、Score)。
    2. Preview 確認查詢結果合理。
    3. 然後切換到 Reports 分頁。
  • 能用「From Query Builder」把剛剛的查詢結果輸出成報表。
    操作教學:
    1. Reports 分頁,Source 選 From Query Builder
    2. Run Report 生成報表。
    3. 如你回到 Queries 修改查詢欄/條件,再回來 Run Report,報表內容會跟著變動。
  • 能做最基本的格式化:加入標題、分組(group),令報表更易閱讀。
    操作教學(以 ClassID 分組):
    1. 在 Reports 的「Group field」選擇 ClassID
    2. 再次按 Run Report,觀察報表按班別分段顯示。
    3. 可在標題欄輸入報表名稱(例如「各班成績表」)。
  • 分辨「查詢」與「報表」:查詢是取數據的規則;報表是輸出格式。
    操作教學:
    1. 同一個查詢結果,可以用不同報表格式呈現(例如不同排序、不同分組)。
    2. 報表通常用於展示/列印;不應把報表當作儲存資料的方法。
提示:報表的重點是「呈現」,所以先確保查詢結果正確,再處理格式。

報表是一個「由資料到展示」的橋樑:你先用查詢把需要的資料整理好,再用報表把結果做成容易閱讀的格式。 在必修範圍內,你不需要做非常複雜的版面設計,但必須理解報表是「輸出」,不是「儲存」。

做報表時,建議把工作分兩步:第一步在 Queries 確保資料正確(欄、條件、排序);第二步在 Reports 做格式化(標題、分組)。 若報表內容不對,通常應回到查詢修正,而不是在報表「硬改」。

最後,請留意分組通常需要配合排序,否則同一組資料可能分散在不同位置,令報表難以閱讀。

Check Point 5.4:查詢 vs 報表

請按「下一題」開始。

5.5 SQL:解讀簡單語句(trace & interpret)

重點

  • 知道 SQL(結構化查詢語言)用來向 DBMS 發出指令;能讀懂簡單 SELECT 語句。
    操作教學:
    1. 按「開啟本節練習」打開工具,切到 SQL Console 分頁。
    2. 在輸入框輸入(或貼上)一個簡單語句,例如:
    3. SELECT StudentID, Name, Score
      FROM students;
    4. Run (Ctrl+Enter) 觀察輸出。
  • 能追蹤(trace)一條 SQL 的執行邏輯,並解釋每一段子句的作用。
    操作教學(加入 WHERE + ORDER BY):
    1. 輸入:
    2. SELECT StudentID, Name, Score
      FROM students
      WHERE ClassID = '4A' AND Score >= 60
      ORDER BY Score DESC;
    3. 按 Run,觀察結果是否只出現 4A 及格學生,並由高分到低分排列。
    4. 嘗試把 ORDER BY 刪走,再 Run 一次,體會「排序」與「篩選」的分工。
  • 懂得把 Query Builder 與 SQL 互相轉換:用 Query Builder 產生思路,再用 SQL 精準表達。
    操作教學:
    1. Queries 建立一個你熟悉的查詢(例如 4A 及格名單)。
    2. 在右側「Saved Queries」把查詢保存;然後按該查詢旁的 Load,系統會把 SQL 送到 SQL Console。
    3. 在 SQL Console 中閱讀這段 SQL,嘗試逐句解釋其作用(SELECT/WHERE/ORDER BY)。
  • 避免常見語法錯誤:文字要加單引號、語句以分號結尾、子句順序正確。
    操作教學(自我檢查清單):
    1. 若條件是文字:ClassID = '4A'(有單引號)。
    2. 若條件是數值:Score >= 60(通常不加引號)。
    3. WHERE 要放在 ORDER BY 之前。
    4. 每條語句最後加 ;,避免一次 Run 多條時混亂。
提示:SQL 的「理解」比死背更重要——你要能解釋每個子句在做甚麼。

在必修範圍中,你未必需要寫非常複雜的 SQL,但你必須能夠「閱讀」與「解釋」一條簡單 SELECT 語句, 尤其是 WHERE(篩選)與 ORDER BY(排序)。這種能力也能幫助你理解 Query Builder 背後的運作。

建議你用「trace」方式解釋:先指出資料來源(FROM),再說明篩選條件(WHERE)如何刪走不符合的紀錄, 接着解釋輸出欄(SELECT)為何只顯示某些欄,最後說明排序(ORDER BY)如何改變顯示次序。

當你能清楚說出每一段子句的作用,你就不容易被「記錯句子」困住;即使遇到陌生題目,也能靠理解推理出答案。

Check Point 5.5:SQL 解讀判斷題

請按「下一題」開始。

5.6 完成品:同一個數據庫包含多張數據表

在必修練習中,你多數會以「單表」完成輸入、查詢與報表。不過,在真實情境中,一個數據庫通常包含多張數據表, 例如:一張表記錄學生,一張表記錄班別。這樣設計有助重用資料、減少重覆輸入,並讓查詢更有彈性。

本完成品示例包含兩張表:students(學生)及 classes(班別)。 你可用「開啟完成品(多表)」進入工具查看;亦可按下方按鈕在頁面內載入概覽。

完成品概覽

按「載入完成品概覽」後,這裡會顯示數據表結構與示例資料。