跳到正文
IGCSE·Tuition
计算机科学 · 课程

写出简单的 SELECT 筛选

查询只是一句短话,但三个部分的顺序和运算符的选择,决定了你得到什么结果。

本页内容
  1. 怎样构建一条查询?
  2. 例题
  3. 要留意的错误
  4. 自我检测
  5. 接下来学什么

SELECT 查询选出要显示的字段(SELECT)、要使用的表(FROM)和要保留的记录(WHERE)。结果是一张更小的新表。

这是数据库与查询推理单元的核心技能。这里继续使用第一课的 Plants 表。

PlantIDNameTypePriceStockIndoor
P01FernFoliage12.508TRUE
P02CactusSucculent6.0025TRUE
P03RoseFlowering15.000FALSE
P04MintHerb4.5040FALSE
P05OrchidFlowering28.003TRUE
P06BasilHerb5.0012FALSE
P07AloeSucculent9.5015TRUE
P08HibiscusFlowering18.006FALSE

怎样构建一条查询?

每次都按同样的顺序书写:

SELECT field1, field2
FROM table
WHERE condition

在 SELECT 后面写 * 表示显示所有字段。文本值要加引号,数字不加。比较运算符有 =、<>(不等于)、<、<=、> 和 >=。

若要排序,在末尾加上 ORDER BY field(默认升序,降序用 DESC)。

例题

问题:列出价格高于 10.00 的每种植物的名称和价格,价格低的在前。

步骤 1,选择要显示的字段: Name、Price。

步骤 2,选择表: Plants。

步骤 3,写出条件: Price > 10。

步骤 4,加上排序: ORDER BY Price。

SELECT Name, Price
FROM Plants
WHERE Price > 10
ORDER BY Price

步骤 5,测试每条记录。 Fern 12.50 通过,Cactus 6.00 不通过,Rose 15.00 通过,Mint 4.50 不通过,Orchid 28.00 通过,Basil 5.00 不通过,Aloe 9.50 不通过,Hibiscus 18.00 通过。

步骤 6,按价格排序: 12.50、15.00、18.00、28.00。

NamePrice
Fern12.50
Rose15.00
Hibiscus18.00
Orchid28.00

返回四行。把八条记录全部检查一遍,而不只是看起来可能的几条,才能让答案准确无误。

要留意的错误

常见的失误是把被测试的字段写进 SELECT 而不是 WHERE。

错误答案: SELECT Price > 10 FROM Plants

这是要求数据库显示一个比较结果,而不是筛选记录。

纠正:SELECT 列出要显示的列;WHERE 放测试条件。第二个失误是文本没加引号,例如 Type = Herb。

自我检测

1. 写一条查询,列出所有香草(herb)的名称。

查看答案
SELECT Name
FROM Plants
WHERE Type = "Herb"

结果:Mint、Basil。

2. SELECT * FROM Plants WHERE Stock < 10 会返回几行?

查看答案

库存低于 10:Fern(8)、Rose(0)、Orchid(3)、Hibiscus(6)。共 4 行。

3. 把 Price > 28 改成 Price >= 28,结果有什么变化?

查看答案

> 28 不返回任何行,因为没有价格高于 28.00。>= 28 返回 Orchid(28.00)。

接下来学什么

接下来,用正确的布尔分组组合条件,然后试试单元练习题。你也可以在只读 SQL 练习实验室运行自己的查询。

如果你想让老师检查你构建每条查询的方式,可以看看我们的计算机科学线上一对一补习。

更新于:

下一步

如果你能读懂查询,却在被要求从头写一条时卡住,一对一的老师可以给你一个可重复使用的模板,并在你构建每一部分时检查。

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

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

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

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