这十二道题综合了数据库结构与验证中的五项技能:选择字段类型、设定主键与验证、导入数据、发现数字与文本的混淆,以及解释重复记录。所有数据都是为本页虚构的。题目由易到难。
先在纸上试做每一题,再打开答案。解释要写成完整的句子,因为考试正是这样给分的。
第 1 至 4 题:类型与主键
第 1 题. 学校食堂的商品表有这些列:ItemCode(如 CN-012)、Price(如 3.50)、StockCount(如 48)和 Vegetarian(Yes 或 No)。为每一列给出字段类型。
查看答案
- ItemCode:文本,因为含有字母和连字符,也不用来计算。
- Price:货币或小数,因为有两位小数,要相乘或相加。
- StockCount:整数,因为是整数的计数。
- Vegetarian:布尔(是/否),因为只出现两种值。
第 2 题. 解释为什么像 007245 这样的会员编号应该存成文本,而不是数字。
查看答案
它是标签而不是数量,因为没有人会把会员编号相加或求平均。在数字字段里,开头的零会被去掉,变成 7245,与真实编号不符。文本则保留全部六个字符。
第 3 题. 图书馆借阅表有 LoanID、BookTitle、BorrowerName 和 DateBorrowed 四个字段。哪个最适合当主键?为什么其余三个不适合?
查看答案
LoanID。 每笔借阅都不同、必有值、也不会变。BookTitle 在一本书被借多次时会重复,BorrowerName 在同一个人借两次时会重复,DateBorrowed 在同一天有两笔借阅时会重复。
第 4 题. 新表格要求 ID 恰好 6 个字符。这是哪一种检查?说明 ST0045 和 ST045 是否被接受。
查看答案
长度检查(length check)。 ST0045 有 6 个字符,所以接受。ST045 有 5 个字符,所以拒绝。
第 5 至 8 题:验证与数字文本
第 5 题. Mark 字段必须接受 0 到 100(含两端)的整数分数。写出验证条件,并用 100、101、0 和 -1 测试。
查看答案
条件:>=0 AND <=100。
- 100:100 >= 0 为真,100 <= 100 为真,接受。
- 101:101 <= 100 为假,拒绝。
- 0:0 >= 0 为真,0 <= 100 为真,接受。
- -1:-1 >= 0 为假,拒绝。
题目说含两端,所以边界值 0 和 100 都被接受。
第 6 题. 老师为一位真实分数是 45 的学生输入了 54。Mark 字段设有第 5 题的规则。验证能发现这个错误吗?请解释。
查看答案
不能。 54 在 0 到 100 的范围内,所以通过。验证只测试值是否合理、是否被允许。要发现数字对调的错误,需要核对,例如把输入与原始成绩单对比。
第 7 题. 一个以文本存放的列含有 5、12、120 和 9。写出升序排序后显示的顺序,以及转成整数后的顺序。
查看答案
作为文本:逐个字符比较。第一个字符分别是 5、1、1 和 9,所以 12 和 120 在前(12 较短),然后是 5,再是 9:12、120、5、9。
作为整数:5、9、12、120。
第 8 题. 邮编字段对源值 08000 显示为 8000。哪里出了问题?怎样修正?
查看答案
字段被存成了数字,开头的零被去掉了。把字段改为文本,再从源文件重新导入,使 08000 完整保留。
第 9 至 12 题:导入与重复记录
第 9 题. 一个 CSV 文件有 1 行标题和 8 行数据。导入后表格显示 9 条记录,第一条记录的值就是字段名称。说出可能的原因和修正方法。
查看答案
第一行含字段名称这个选项没有设置,所以标题行被当成记录导入了。正确的数量是 8。删除错误的记录,或开启标题选项重新导入,然后再次检查字段类型。
第 10 题. 一行 CSV 内容是:P014,Lee, Anna,45.50(姓名本应是一个值,Lee, Anna)。表格有 3 个字段:ID、Name 和 Fee。导入时会发生什么?源文件应该怎样写?
查看答案
姓名里的逗号被当作分隔符,所以这一行被拆成 4 个值:P014、Lee、Anna 和 45.50。它们放不进 3 个字段,Fee 可能得到错误的值。姓名应该用文本限定符括起来:P014,“Lee, Anna”,45.50。
第 11 题. 一张有 50 条记录的表,每条费用都是 20.00,其中含有 3 条重复记录。写出显示的费用总额、真实总额以及多算的金额。
查看答案
显示:50 × 20.00 = 1000.00。真实记录数:50 - 3 = 47,所以真实总额是 47 × 20.00 = 940.00。多算了 1000.00 - 940.00 = 60.00,这也等于 3 × 20.00。
第 12 题. 表格以 MemberID 为主键。一位会员以 M021 出现一次,又以 M058 出现一次,其他字段完全相同。为什么主键没能阻止?接下来应该怎么做?
查看答案
主键只阻止相同的键值。M021 和 M058 不同,所以两条都被接受。由于其他字段都吻合,它们几乎可以肯定是同一个人。保留原来的记录(较早的 M021),删除 M058,再检查记录数和总额。
如果你做错了
| 错误类型 | 题号 | 回到 |
|---|---|---|
| 字段类型选错,或设置时混淆文本与数字 | 第 1、2 题 | 根据样本数据选择字段类型 |
| 主键选择、验证规则或边界错误 | 第 3、4、5、6 题 | 定义主键与验证条件 |
| 导入设置、标题行或逗号问题 | 第 9、10 题 | 导入一份小型虚构数据集 |
| 排序错乱、零丢失、总和不能计算 | 第 7、8 题 | 发现数字与文本的错误解读 |
| 重复记录的影响与主键的局限 | 第 11、12 题 | 解释重复记录为什么重要 |
把每次做错的题记在错题记录与重测队列里,以便日后重测。只读 SQL 练习实验室和 ICT 实操任务与证据检查器提供更多虚构数据可供研究。
ICT 线上一对一补习的老师可以和你一起批改书面解释,并针对你出错的类型出新的表格。