本模块讲如何从数据库表中取出正确的记录,并做成报表:多重条件搜索、排序、计算字段(calculated field)、分组和核对。它接在数据库结构与验证之后,那里已经建好了表和字段。
这些都是实操技能。请查看剑桥 ICT 0417 最新大纲的确切措辞,并使用你所在中心教的软件流程。无论是电子表格还是数据库工具,基本思路都一样。
开始之前需要会什么?
你需要知道什么是记录(record)、字段(field)和数据类型,并会打开一张表。>、>=、<、<> 等比较符号在整个模块中反复出现,请确保能准确读出它们的意思。
全模块使用的数据
每一课都用下面这张虚构的学校社团表(Harbour Hill Clubs)。人物和数字都是编的。
| ID | Name | Year | Club | Fee (RM) | Sessions (of 12) |
|---|---|---|---|---|---|
| 1 | Aiman | 10 | Chess | 30 | 8 |
| 2 | Bella | 11 | Drama | 45 | 12 |
| 3 | Chen | 10 | Drama | 45 | 9 |
| 4 | Dewi | 9 | Chess | 30 | 11 |
| 5 | Evan | 11 | Robotics | 60 | 7 |
| 6 | Farah | 10 | Robotics | 60 | 12 |
| 7 | Gopal | 9 | Drama | 45 | 6 |
| 8 | Hui | 11 | Chess | 30 | 10 |
| 9 | Imran | 10 | Chess | 30 | 12 |
| 10 | Jia | 9 | Robotics | 60 | 5 |
一个引导例子
任务:列出 Year 10 及以上的 Chess 成员,出席次数最多的排在最前。
条件是 Club = “Chess” AND Year >= 10,再把 Sessions 从高到低排序。手工查表,Chess 成员是 Aiman、Dewi、Hui 和 Imran。Dewi 在 Year 9,所以被排除。报表应该显示 Imran (12)、Hui (10)、Aiman (8)。
如果你的报表有四行,或者 Aiman 排第一,就说明条件或排序出了问题。这正是本模块要养成的习惯:先手算出预期答案,再对照结果。
这些课程该按什么顺序学?
- 正确应用多重查询条件:AND、OR 和括号决定哪些记录出现,所以先学这一课。
- 用第二排序键排序记录:记录选对之后,按任务要求的顺序排列。
- 在支持的情况下创建计算字段:加入由其他字段算出的值,例如出席率百分比。
- 分组报表时不隐藏必需的值:小计和计数,同时保留每一项必需的细节。
- 把显示结果与源数据集对照:在交卷前证明结果正确的方法。
最容易踩的陷阱
- 混用 AND 和 OR 却不加括号,使查询回答了另一个问题。
- 任务说“至少”,却用了
>。 - 只按第二个键排序。
- 只显示汇总,丢掉了任务要求的明细行。
- 从不检查记录数量。
怎样使用练习题?
学完各课后,试做数据库查询与报表练习题。先根据上面的表算出每个答案,再打开解析。只读 SQL 练习实验室和 ICT 实操任务与证据检查器可以帮你检验推理和证据。
老师也可以帮你建立自己的检查流程。了解一对一线上 ICT 补习是怎么进行的。