跳转到主要内容
模块 1 · 第 3 课(共 4)课程中的3/57~10 min
模块课程(3/4)

使用 WHERE 进行过滤

通常我们不需要表的所有行,而只需要那些 满足一定的条件。 WHERE 子句根据 布尔表达式:

SQL
SELECT <colonne>
FROM   <tabella>
WHERE  <condizione>;

引擎一次评估一行条件并仅保留那些 它返回 TRUE。

比较运算符

最常见的是:

  • = 等于,<>(或 !=)不等于
  • <、<=、>、>=
  • BETWEEN a AND b — 闭区间(包括 a 和 b)
  • IN (v1, v2, …) — 列表中的成员资格
  • LIKE 'patt%' — 与通配符 % 匹配的文本

文本值用单引号括起来:'Milano'。

组合条件

您可以将多个条件与 AND、OR 组合起来,并使用 NOT。混合它们时,为了清楚起见,请使用括号:

SQL
WHERE department_id = 1
  AND (salary > 40000 OR hired_on < '2020-01-01');

尝试一下

锻炼#sql.m1.l3.e1
尝试:0加载中...

提取工资严格大于 40,000 的员工的名字 (first_name)、姓氏 (last_name) 和工资 (salary)。

正在加载编辑器...
显示提示

你需要的条件是工资> 40000。数字不需要引号。

3 次尝试后可用的解决方案

复习练习

锻炼#sql.m1.l3.e2
尝试:0加载中...

提取姓氏以字母“R”开头的员工的名字 (first_name) 和姓氏 (last_name)。将 LIKE 与 % 通配符一起使用。

正在加载编辑器...
显示提示

模式“R%”的意思是:以 R 开头,后跟任何内容的字符串。

3 次尝试后可用的解决方案