跳到正文
IGCSE·Tuition
资讯与通信科技(ICT) · 课程

正确应用多重查询条件

带两个条件的查询看起来没问题,却可能多返回一条不该出现的记录。

本页内容
  1. AND、OR 和括号如何运作?
  2. 完整例题
  3. 要避免的错误
  4. 自测
  5. 接下来学什么

应用多重条件,就是让数据库只保留同时满足、或分别满足几个条件的记录。当实操任务写“显示参加这个社团且出席次数达到某个数目的成员”时,就要用到它。

本课属于数据库查询与报表。用到的比较符号有 =、<>(不等于)、>、>=、< 和 <=。你的软件可能用设计网格显示,也可能用键入文字,但逻辑是一样的。

AND、OR 和括号如何运作?

AND 要求每个条件都成立。OR 只要求至少一个成立。当两者出现在同一个查询里,AND 先算,所以要改变顺序就需要括号。

  1. 把任务改写成句子,每个条件单独写。
  2. 决定条件如何连接:全部同时成立(AND),还是任一成立(OR)。
  3. 把 OR 的几个选项放进括号,当它们处于 AND 之内时。
  4. 运行之前先手算预期记录,从源表中找出来。
  5. 运行后对照数量和姓名。

完整例题

表格是模块页面里虚构的 Harbour Hill Clubs 表:十条记录,含 ID、Name、Year、Club、Fee 和 Sessions(共 12 节)。

任务:列出属于 Drama 或 Robotics、且至少出席 9 节的成员。

第 1 步,句子:(Club 是 Drama 或 Club 是 Robotics)并且 Sessions 至少 9。

第 2 步,条件:(Club = “Drama” OR Club = “Robotics”) AND Sessions >= 9

**第 3 步,手算:**Drama 成员是 Bella (12)、Chen (9)、Gopal (6)。Robotics 成员是 Evan (7)、Farah (12)、Jia (5)。保留 9 节或以上的:Bella、Chen、Farah。

**第 4 步,结果:**三条记录,Bella、Chen 和 Farah。如果查询显示的就是这三条,就与手工核对一致。

要避免的错误

漏掉括号:

Club = “Drama” OR Club = “Robotics” AND Sessions >= 9

因为先算 AND,这句的意思变成:任何出席次数的 Drama 成员,加上出席 9 节或以上的 Robotics 成员。

这会返回 Bella、Chen、Gopal 和 Farah 四条记录。Gopal 只出席了 6 节,不该出现。查询运行时没有任何报错,只有手工核对才能发现问题。

改正方法是像例题那样,把两个 OR 条件放进括号,并把记录数量与你的预期对照。

自测

使用虚构的表,先手算每个答案。

1. 哪些成员在 Year 11 并且 Fee 高于 RM40?

显示答案

Year 11 成员是 Bella (45)、Evan (60) 和 Hui (30)。Fee 高于 40 的保留 Bella 和 Evan。Bella 和 Evan,共两条记录。

2. 写出“出席 8 到 11 节(含两端)”的条件,并列出符合的成员。

显示答案

Sessions >= 8 AND Sessions <= 11。符合的有:Aiman (8)、Chen (9)、Dewi (11)、Hui (10)。**共四条记录。**Bella、Farah 和 Imran 是 12 节,所以排除。

3. 有多少成员不在 Chess?

显示答案

Club <> “Chess”。Chess 有四人,所以其余六人是 Bella、Chen、Evan、Farah、Gopal 和 Jia。

接下来学什么

记录选对之后,用第二排序键排序记录,把它们排成任务要求的顺序。你也可以在只读 SQL 练习实验室里测试查询,用 ICT 实操任务与证据检查器确认证据,再做练习题。

如果括号逻辑仍然让你不踏实,我们的老师可以在一对一线上 ICT 补习中陪你练习。

常见问题

查询中 AND 和 OR 有什么区别?

AND 要求每个条件都成立,记录才保留。OR 只要至少一个条件成立就保留。所以 AND 通常返回的记录更少,OR 更多。任务写“同时”时想到 AND,写“或者”时想到 OR。

搜索时什么时候需要括号?

当同一个查询里混用 AND 和 OR 时。软件通常先算 AND 再算 OR,没有括号的话,查询可能与你想的意思不同。括号让分组变得明确,再用记录数量核对就能确认是否正确。

“8 到 11 之间”等于大于 8 且小于 11 吗?

不等于。“8 到 11(含两端)”是 Sessions >= 8 AND Sessions <= 11,8 和 11 本身都保留。用 > 和 < 会丢掉两端。请留意任务里的“含”“至少”“多于”“少于”等字眼。

更新于:

下一步

如果你的多条件查询能运行,却不确定记录数量对不对,一对一老师可以用新数据陪你养成手工核对的习惯。

一小时付费试听课,按所安排老师确认的收费,RM80 起。 其他费用、时间安排及后续课程,在试听课后由家长与老师直接确认。

补习由家长或监护人安排。用 WhatsApp 把这页发给他们,他们就可以替你咨询。

是家长或监护人?在这里咨询

已通过我们的服务帮助 9,000+ 名学生