/tutor-prep-s5-ict-databases-sql-practice-1/
/tutor-prep-s5-ict-databases-sql-practice-1/
一般查詢: info@TutorZone.com.hk
辦公時間: 星期一至六 - 上午 9 時至下午 6 時
WhatsApp 星期一至日 - 24 小時
人手接聽: +852 6828 1809
即時客服: +852 9061 3106

DSE ICT|關聯式資料庫與 SQL 配套練習(第一份・基礎查詢)

DSE ICT|關聯式資料庫與 SQL 配套練習(第一份・基礎查詢)

  • 2026-11-04

DSE ICT|關聯式資料庫與 SQL 配套練習(第一份・基礎查詢)

由 12 列學生表的同一組數據開始,逐題數列數欄,再練 LIKE 前綴、排序與 NULL 的比較陷阱。

先做題,後對答案 建議三十分鐘;每題先在紙上寫出回傳的列數與欄數,再落 SQL。

01 本卷資料(做完才看答案)

項目 內容
題數 10 題
建議時間 約 30 分鐘
難度分佈 基礎 4 · 進階 3 · 挑戰 2 · 錯題重練 1
對應章節 所屬章節:DSE ICT|關聯式資料庫與 SQL
適用年級 中五(S5)ICT

02 題目(10 題)

  1. 基礎資料表 Students 有 12 列、5 欄。執行 `SELECT name FROM Students WHERE form = 4;`,而 form = 4 的學生有 5 人,結果共有幾列幾欄?
  2. 基礎主鍵(primary key)有哪兩個必須成立的條件?主鍵欄可以存 NULL 嗎?
  3. 基礎外鍵(foreign key)的作用是甚麼?它可否與其他列的數值重複?
  4. 基礎一張 Books 表有 30 列、6 欄。`SELECT * FROM Books;` 回傳多少個資料值(cell)?
  5. 進階以同一組資料(form 4 有 S01 72、S02 85、S03 64、S04 91、S05 58),`SELECT name FROM Students WHERE form = 4 AND score >= 85;` 回傳哪幾列,共幾列?
  6. 進階學生編號由 S01 至 S12。`WHERE id LIKE ‘S0%’;` 會回傳幾列?為甚麼 S10 不在其中?
  7. 進階同一組 12 位學生總分 902。`SELECT COUNT(*), AVG(score) FROM Students;` 的兩個結果是?
  8. 挑戰分數為 72、85、64、91、58、77、83、69、95、88、54、66。`ORDER BY score DESC LIMIT 3;` 的三個分數依次是?第三高分是多少?
  9. 挑戰`SELECT DISTINCT form FROM Students;` 在同組資料(form 4、5、6)回傳幾列?若改用 `SELECT form FROM Students;` 又回傳幾列?
  10. 錯題重練錯題重練:有同學寫 `WHERE score = NULL;` 想找出沒有分數的學生。正確寫法與原因?

03 答案與一句解說

題號 答案 一句解說
1 5 列、1 欄 WHERE 只篩選列(元組),SELECT 後只寫 name 就只保留一個屬性。
2 唯一(unique)且非空(not null);不可以存 NULL 主鍵用來識別每一列,重複或空值都會令「這一列是誰」無法判定。
3 指向另一張表的主鍵以建立關聯;可以重複(多對一),亦可以全部為 NULL(若允許) 外鍵管的是「引用必須存在」,重複是正常的:多個學生可同屬一班。
4 180 個 30 列 × 6 欄 = 180 格;SELECT * 不會篩走任何列或欄。
5 S02(85)與 S04(91),共 2 列 AND 要兩個條件同時成立,85 與 91 才過關。
6 9 列(S01–S09);S10、S11、S12 第二個字是 1,不符合 S0 開頭 LIKE 的 % 代表任意字串,但 S0 是固定前綴,逐字比對。
7 COUNT(*) = 12;AVG = 75.17(902 ÷ 12 = 75.166…) AVG 忽略 NULL 但這裡無 NULL,所以直接總和除以列數。
8 95、91、88;第三高分是 88 DESC 由大到小,LIMIT 3 只取前三列;88 與 85 只差 3 分,排序要準。
9 DISTINCT 回 3 列;不加 DISTINCT 回 12 列(每列一次) DISTINCT 去除重複值,只保留出現過的級別;不加就逐列輸出,重複照樣保留。
10 應寫 `WHERE score IS NULL;`;NULL 不是一個值,= 比較永遠得 unknown,不會回任何列 NULL 代表「未知」,任何與 NULL 的等值比較都不成立,必須用 IS NULL 或 IS NOT NULL。

04 做完之後怎樣跟進

  • 對完答案,只重做錯的那幾題,並在錯題旁寫出錯在哪一步(公式、單位還是抄錯數)。
  • 同一題隔兩日再做一次;兩次都對才可以移到下一份練習。
  • 家長只需看答案欄與解說欄,不必逐題講解。

想找導師跟進這一章?按此登記導師登記 →

本卷題目與答案由 TutorZone 團隊原創編寫,並非任何學校、出版社或考試局的試題;數值與答案均以程式核算。

招募導師及興趣班教練|學術、樂器、體育、藝術、STEM,免費登記,招生與配對交給平台。 了解詳情 →