跳到主要内容

SQL WHERE 子句

在 SQL 中,WHERE 子句用于从数据库表中筛选出满足特定条件的记录。它是 SQL 查询中最常用的子句之一,能够帮助我们精确地获取所需的数据。

什么是 WHERE 子句?

WHERE 子句用于在 SELECTUPDATEDELETE 等语句中指定条件,只有满足这些条件的记录才会被返回或操作。通过 WHERE 子句,我们可以过滤掉不需要的数据,从而更高效地处理和分析数据。

基本语法

sql
SELECT 列名1, 列名2, ...
FROM 表名
WHERE 条件;
  • 列名1, 列名2, ...:要查询的列。
  • 表名:要查询的表。
  • 条件:用于筛选记录的条件。

WHERE 子句的使用

1. 简单条件

最简单的 WHERE 子句使用比较运算符(如 =>< 等)来筛选数据。

示例:查询年龄大于 18 岁的用户

sql
SELECT name, age
FROM users
WHERE age > 18;

输入数据:

idnameage
1Alice20
2Bob17
3Charlie22

输出结果:

nameage
Alice20
Charlie22

2. 多条件组合

我们可以使用逻辑运算符(如 ANDORNOT)来组合多个条件。

示例:查询年龄大于 18 岁且性别为女性的用户

sql
SELECT name, age
FROM users
WHERE age > 18 AND gender = 'female';

输入数据:

idnameagegender
1Alice20female
2Bob17male
3Charlie22male
4Diana19female

输出结果:

nameage
Alice20
Diana19

3. 使用 BETWEEN 和 IN

BETWEEN 用于筛选某个范围内的值,而 IN 用于筛选多个可能的值。

示例:查询年龄在 18 到 25 岁之间的用户

sql
SELECT name, age
FROM users
WHERE age BETWEEN 18 AND 25;

示例:查询名字为 Alice 或 Bob 的用户

sql
SELECT name, age
FROM users
WHERE name IN ('Alice', 'Bob');

4. 使用 LIKE 进行模糊查询

LIKE 用于进行模糊查询,通常与通配符 %(匹配任意字符)和 _(匹配单个字符)一起使用。

示例:查询名字以 'A' 开头的用户

sql
SELECT name, age
FROM users
WHERE name LIKE 'A%';

输入数据:

idnameage
1Alice20
2Bob17
3Charlie22
4Amy19

输出结果:

nameage
Alice20
Amy19

实际应用场景

场景 1:电商网站的商品筛选

假设你正在开发一个电商网站,用户可以通过筛选条件来查找商品。例如,用户可能想查找价格在 50 到 100 元之间的商品。

sql
SELECT product_name, price
FROM products
WHERE price BETWEEN 50 AND 100;

场景 2:学生成绩查询

在一个学生管理系统中,老师可能需要查询成绩在 90 分以上的学生。

sql
SELECT student_name, score
FROM students
WHERE score > 90;

总结

WHERE 子句是 SQL 查询中非常重要的部分,它允许我们根据特定条件筛选数据。通过掌握 WHERE 子句的使用,你可以更灵活地查询和处理数据库中的数据。

提示
  • 使用 WHERE 子句时,确保条件表达式正确,避免逻辑错误。
  • 对于复杂的查询,可以结合 ANDORNOT 等逻辑运算符来组合多个条件。

附加资源与练习

  1. 练习 1:编写一个 SQL 查询,从 employees 表中筛选出工资大于 5000 且部门为 'Sales' 的员工。
  2. 练习 2:编写一个 SQL 查询,从 orders 表中筛选出订单日期在 2023 年 1 月 1 日到 2023 年 12 月 31 日之间的订单。

通过不断练习,你将更加熟练地掌握 WHERE 子句的使用。