SQL关键字三分钟入门:WHERE 是如何筛选数据的?

79 阅读2分钟

在数据库查询中,我们通常不会需要查看整张表的所有数据,而是只想找出符合条件的部分记录。例如:

  • 查找某个用户的所有订单;
  • 查询价格大于100的商品;
  • 筛选出2025年注册的用户。

这时候,我们就需要用到一个非常重要的 SQL 关键字 —— WHERE


一、 什么是 WHERE?

WHERE 是 SQL 中用于过滤查询结果的关键字。它允许我们根据某些条件来选择性地获取数据。

你可以把它理解为:“只返回满足我条件的数据”。


 二、基本语法

SELECT column1, column2, ...
FROM table_name
WHERE condition;

  • condition 是一个布尔表达式,用来判断哪些行应该被选中。

三、 示例讲解

假设我们有一个 users 表,结构如下:

idnameagegendercreated_at
1张三202025-01-01
2李四222025-02-01
3王五212025-03-01

 示例1:查找特定用户的记录

SELECT * FROM users WHERE name = '李四';

 返回的是 name 等于“李四”的那条记录。


 示例2:查找年龄大于等于21岁的用户

SELECT * FROM users WHERE age >= 21;

 返回的是 age 大于或等于21的所有记录(即李四和王五)。


 示例3:组合多个条件(AND / OR)

-- 查找性别为女且年龄大于20的用户
SELECT * FROM users WHERE gender = '女' AND age > 20;

-- 查找名字是张三或者王五的用户
SELECT * FROM users WHERE name = '张三' OR name = '王五';


 示例4:使用 NOT 取反条件

-- 查找不是男性用户的记录
SELECT * FROM users WHERE NOT gender = '男';


 示例5:模糊匹配 LIKE

-- 查找名字以“张”开头的用户
SELECT * FROM users WHERE name LIKE '张%';

-- 查找名字包含“三”的用户
SELECT * FROM users WHERE name LIKE '%三%';


注意:

操作符含义示例
=等于WHERE age = 20
><大于、小于WHERE age > 20
>=<=大于等于、小于等于WHERE price <= 100
<> 或 !=不等于WHERE gender != '男'
IN在某一集合中WHERE name IN ('张三','李四')
BETWEEN在某两个值之间WHERE age BETWEEN 20 AND 30
LIKE模糊匹配WHERE name LIKE '张%'
IS NULL判断是否为空WHERE email IS NULL

四、 总结

功能使用方式
精确筛选WHERE name = '张三'
数值比较WHERE age > 20
多条件筛选WHERE gender = '女' AND age > 20
模糊匹配WHERE name LIKE '张%'
判断空值WHERE email IS NULL