DSE ICT|關聯式資料庫與 SQL 配套練習(第一份・基礎查詢) 2026-11-04 導師備課指引 · 中學 ICT DSE ICT|關聯式資料庫與 SQL 配套練習(第一份・基礎查詢) 由 12 列學生表的同一組數據開始,逐題數列數欄,再練 LIKE 前綴、排序與 NULL 的比較陷阱。 先做題,後對答案 建議三十分鐘;每題先在紙上寫出回傳的列數與欄數,再落 SQL。 01 本卷資料(做完才看答案) 項目 內容 題數 10 題 建議時間 約 30 分鐘 難度分佈 基礎 4 · 進階 3 · 挑戰 2 · 錯題重練 1 對應章節 所屬章節:DSE ICT|關聯式資料庫與 SQL 適用年級 中五(S5)ICT 02 題目(10 題) 基礎資料表 Students 有 12 列、5 欄。執行 `SELECT name FROM Students WHERE form = 4;`,而 form = 4 的學生有 5 人,結果共有幾列幾欄? 基礎主鍵(primary key)有哪兩個必須成立的條件?主鍵欄可以存 NULL 嗎? 基礎外鍵(foreign key)的作用是甚麼?它可否與其他列的數值重複? 基礎一張 Books 表有 30 列、6 欄。`SELECT * FROM Books;` 回傳多少個資料值(cell)? 進階以同一組資料(form 4 有 S01 72、S02 85、S03 64、S04 91、S05 58),`SELECT name FROM Students WHERE form = 4 AND score >= 85;` 回傳哪幾列,共幾列? 進階學生編號由 S01 至 S12。`WHERE id LIKE ‘S0%’;` 會回傳幾列?為甚麼 S10 不在其中? 進階同一組 12 位學生總分 902。`SELECT COUNT(*), AVG(score) FROM Students;` 的兩個結果是? 挑戰分數為 72、85、64、91、58、77、83、69、95、88、54、66。`ORDER BY score DESC LIMIT 3;` 的三個分數依次是?第三高分是多少? 挑戰`SELECT DISTINCT form FROM Students;` 在同組資料(form 4、5、6)回傳幾列?若改用 `SELECT form FROM Students;` 又回傳幾列? 錯題重練錯題重練:有同學寫 `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 團隊原創編寫,並非任何學校、出版社或考試局的試題;數值與答案均以程式核算。
DSE ICT|關聯式資料庫與 SQL 配套練習(第一份・基礎查詢) 2026-11-04 導師備課指引 · 中學 ICT DSE ICT|關聯式資料庫與 SQL 配套練習(第一份・基礎查詢) 由 12 列學生表的同一組數據開始,逐題數列數欄,再練 LIKE 前綴、排序與 NULL 的比較陷阱。 先做題,後對答案 建議三十分鐘;每題先在紙上寫出回傳的列數與欄數,再落 SQL。 01 本卷資料(做完才看答案) 項目 內容 題數 10 題 建議時間 約 30 分鐘 難度分佈 基礎 4 · 進階 3 · 挑戰 2 · 錯題重練 1 對應章節 所屬章節:DSE ICT|關聯式資料庫與 SQL 適用年級 中五(S5)ICT 02 題目(10 題) 基礎資料表 Students 有 12 列、5 欄。執行 `SELECT name FROM Students WHERE form = 4;`,而 form = 4 的學生有 5 人,結果共有幾列幾欄? 基礎主鍵(primary key)有哪兩個必須成立的條件?主鍵欄可以存 NULL 嗎? 基礎外鍵(foreign key)的作用是甚麼?它可否與其他列的數值重複? 基礎一張 Books 表有 30 列、6 欄。`SELECT * FROM Books;` 回傳多少個資料值(cell)? 進階以同一組資料(form 4 有 S01 72、S02 85、S03 64、S04 91、S05 58),`SELECT name FROM Students WHERE form = 4 AND score >= 85;` 回傳哪幾列,共幾列? 進階學生編號由 S01 至 S12。`WHERE id LIKE ‘S0%’;` 會回傳幾列?為甚麼 S10 不在其中? 進階同一組 12 位學生總分 902。`SELECT COUNT(*), AVG(score) FROM Students;` 的兩個結果是? 挑戰分數為 72、85、64、91、58、77、83、69、95、88、54、66。`ORDER BY score DESC LIMIT 3;` 的三個分數依次是?第三高分是多少? 挑戰`SELECT DISTINCT form FROM Students;` 在同組資料(form 4、5、6)回傳幾列?若改用 `SELECT form FROM Students;` 又回傳幾列? 錯題重練錯題重練:有同學寫 `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 團隊原創編寫,並非任何學校、出版社或考試局的試題;數值與答案均以程式核算。