SQL 课程 2:带约束的查询(第 1 部分)

实际分析几乎从不需要整张表。WHERE 就像客户名单前的一道筛网:先让数据逐行经过条件,再只留下真正值得关注的记录。例如,只看某一年成立的客户,或只保留员工规模较小的潜在客户。

accounts 表中的 year_established(成立年份)、revenue(年营收)与 employees(员工人数)都是数值字段。面对它们,可以使用比较符、范围或多个条件组合完成筛选。

下面的客户档案仅作为起点。请在查询中加入 WHERE 条件,找出符合当前业务条件的全部客户。

使用数值条件筛选记录
SELECT 字段
FROM 表名
WHERE 条件
  AND / OR 另一条件;

WHERE 放在哪里?

WHERE 总是跟在 FROM 后面。数据库会先找到 accounts 表,再判断每一行是否符合条件,最后只返回通过筛选的行。可以把它读成:“从客户档案中,找出员工人数少于 500 的客户”。

筛选员工人数少于 500 的客户
SELECT account, employees
FROM accounts
WHERE employees < 500;

小提醒:数值不需要单引号。employees < 500 是数值比较;写成 employees < '500' 虽然某些数据库也能执行,但不建议养成这个习惯。

数值筛选运算符速查表

这些条件可以直接写在 WHERE 后面。BETWEEN 的两端都包含在结果中,等价于“大于等于起点并且小于等于终点”。

常用数值条件

运算符含义CRM 示例
=、!=(或 <>)等于、不等于year_established != 2000
<、<=、>、>=小于、小于等于、大于、大于等于employees >= 1000
BETWEEN … AND …位于两个数之间,包含两端revenue BETWEEN 1000 AND 5000
NOT BETWEEN … AND …不在指定区间内employees NOT BETWEEN 500 AND 2000
IN (…) / NOT IN (…) 数值在(不在)给定列表中year_established IN (1996, 2000, 2005)

多个条件:AND、OR 与括号

AND 表示两个条件必须同时成立,OR 表示满足其中一个即可。比如要找“营收较高且员工较多”的重点客户,用 AND;要找“成立于 1996 或 2000 年”的客户,用 OR。

当 AND 和 OR 同时出现时,给 OR 的条件加上括号会更安全。这样既能避免误读,也便于团队成员复查你的分析口径。

优先级清晰的组合条件
SELECT account, revenue, employees
FROM accounts
WHERE revenue >= 5000
  AND (employees < 500 OR employees > 5000);

小提醒:不要只写 WHERE employees;SQL 需要一个能判断真假的完整条件,例如 employees < 500。

练习

查询可以正常执行,但只有完整满足当前筛选目标时,才会解锁下一题。

表格:accounts(客户档案)

查询返回 0 行。

显示第 00
1 / 1
正在准备浏览器内 SQL 数据库…