CodeGym /课程 /SQL SELF /用比较运算符 (=, >, <, <>) 过滤数据

用比较运算符 (=, >, <, <>) 过滤数据

SQL SELF
第 2 级 , 课程 1
可用

好了,我们已经知道怎么用 SELECT 命令了。至少我们已经学会了从数据库里提取数据,选出需要的列,还能写点把原始数据变成有用信息的查询。现在,是时候给我们的魔法调色板加点“过滤器”了。没错,今天我们聊聊怎么用 数据过滤,用到的就是 =><<> 这些比较运算符。

当你面对一张超大的表时,大概率你不会想看所有数据(除非你想体验一下混乱)。为了只挑出你想要的行,SQL 里有个关键词 WHERE。它能让你设置条件,只有满足这些条件的行,才会出现在查询结果里。而这些条件里就会用到 比较运算符

WHERE 过滤的语法

SELECT 列1, 列2
FROM 表名
WHERE 条件;

结构很简单:在 FROM 后面加上 WHERE,然后写上具体的 条件,只有符合条件的行才会被选出来。

举个例子,从 students 表里查数据:

SELECT name, age
FROM students
WHERE age > 18;

这个查询只会选出那些年龄大于 18 岁的学生(名字和年龄)。很简单吧?现在我们来深入了解一下比较运算符的世界。

常用的比较运算符

SQL 里有几个比较运算符,能帮你按自己的需求过滤数据。其实你在数学里早见过它们,不过这里还是要说清楚点。下面是最常用的几个:

  1. = — 等于。
  2. <> — 不等于(有些数据库也支持 !=,不过最好用 <>,因为它是 SQL 标准)。
  3. > — 大于。
  4. < — 小于。
  5. >= — 大于等于。
  6. <= — 小于等于。

比较运算符表格

运算符 含义 例子 结果
= 等于 age = 20 返回年龄 等于 20 的行
<> 不等于 age <> 20 返回年龄 不等于 20 的行
> 大于 age > 18 返回年龄 大于 18 的行
< 小于 age < 18 返回年龄 小于 18 的行
>= 大于等于 age >= 18 返回年龄 18 或更大 的行
<= 小于等于 age <= 18 返回年龄 18 或更小 的行

比较运算符的用法例子

例子 1:查找大于 20 岁的学生

这是我们的表:

id name age
1 Alex Lin 22
2 Anna Song 19
3 Otto Art 21
SELECT name, age
FROM students
WHERE age > 20;

这里我们设置了 age > 20 这个条件,只选出年龄大于 20 的学生。如果表里有个学生 19 岁,那他就不会被选出来。

在我们的例子里,结果是:

name age
Alex Lin 22
Otto Art 21

学生 Anna Song 没被选中,因为她只有 19 岁。

例子 2:查找工资不少于 50 000 的员工

这是我们的 employees 表:

first_name last_name salary
Julia Kim 48000
Marcus Lee 52000
Anya Patel 50000
Ethan Zhou 61000

我们的 SQL 查询:

SELECT first_name, last_name, salary
FROM employees
WHERE salary >= 50000;

这个查询会返回所有工资 等于 50 000 或 高于 50 000 的员工。等于也算!

first_name last_name salary
Marcus Lee 52000
Anya Patel 50000
Ethan Zhou 61000

例子 3:查找价格低于 100 的商品

product_name price
USB Cable 85
Wireless Mouse 150
Notebook 60
Mechanical Pencil 45
SELECT product_name, price
FROM products
WHERE price < 100;

如果你有个网店,这个查询能帮你选出所有价格低于 100 的商品(比如做个“全场 99 元”促销)。

product_name price
USB Cable 85
Notebook 60
Mechanical Pencil 45

例子 4:排除某个 id 的用户

SELECT id, username
FROM users
WHERE id <> 1;

这个查询会选出所有 除了 id 等于 1 的用户。<> 运算符的意思就是“给我所有不等于这个值的”。

users 表:

id username
1 admin
2 elena.gray
3 tom.bishop
4 aria.noble

查询结果:

id username
2 elena.gray
3 tom.bishop
4 aria.noble

用比较运算符过滤时的常见错误

刚开始写带过滤的查询时,常常会出错。下面是几个常见的坑,记得注意:

问题 1:列名写错

如果你在查询里把列名写错了,PostgreSQL 会报错。比如:

SELECT name, age
FROM students
WHERE ages > 18; -- 错误:没有 "ages" 这个列

写查询前一定要确认列名拼写没错。

问题 2:比较运算符用错

有时候新手会把运算符写反。比如:

SELECT name, age
FROM students
WHERE age => 18; -- 错误:运算符写错了

正确的写法是 >=,不是 =>

问题 3:过滤的值表里根本没有

如果你用不存在的值去过滤,查询会执行,但结果是空的。比如:

SELECT name
FROM students
WHERE age = 999; -- 结果:0 行

这不是语法错,但如果你本来想看到数据,可能会被搞糊涂。

实际应用

用比较运算符过滤数据,在各种场景下都很有用:

  • 数据分析: 比如选出所有消费超过 10 000 卢比的客户。
  • 报表: 选出工资高于平均值的员工。
  • 监控: 跟踪最近一个月没活跃的用户。

SQL 能让你从超大表里快速提取需要的数据,而比较运算符就是你走上这条路的第一步。

评论
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION