SQL WHERE 子句
在 SQL 中,WHERE
子句用于从数据库表中筛选出满足特定条件的记录。它是 SQL 查询中最常用的子句之一,能够帮助我们精确地获取所需的数据。
什么是 WHERE 子句?
WHERE
子句用于在 SELECT
、UPDATE
、DELETE
等语句中指定条件,只有满足这些条件的记录才会被返回或操作。通过 WHERE
子句,我们可以过滤掉不需要的数据,从而更高效地处理和分析数据。
基本语法
sql
SELECT 列名1, 列名2, ...
FROM 表名
WHERE 条件;
列名1, 列名2, ...
:要查询的列。表名
:要查询的表。条件
:用于筛选记录的条件。
WHERE 子句的使用
1. 简单条件
最简单的 WHERE
子句使用比较运算符(如 =
、>
、<
等)来筛选数据。
示例:查询年龄大于 18 岁的用户
sql
SELECT name, age
FROM users
WHERE age > 18;
输入数据:
id | name | age |
---|---|---|
1 | Alice | 20 |
2 | Bob | 17 |
3 | Charlie | 22 |
输出结果:
name | age |
---|---|
Alice | 20 |
Charlie | 22 |
2. 多条件组合
我们可以使用逻辑运算符(如 AND
、OR
、NOT
)来组合多个条件。
示例:查询年龄大于 18 岁且性别为女性的用户
sql
SELECT name, age
FROM users
WHERE age > 18 AND gender = 'female';
输入数据:
id | name | age | gender |
---|---|---|---|
1 | Alice | 20 | female |
2 | Bob | 17 | male |
3 | Charlie | 22 | male |
4 | Diana | 19 | female |
输出结果:
name | age |
---|---|
Alice | 20 |
Diana | 19 |
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%';
输入数据:
id | name | age |
---|---|---|
1 | Alice | 20 |
2 | Bob | 17 |
3 | Charlie | 22 |
4 | Amy | 19 |
输出结果:
name | age |
---|---|
Alice | 20 |
Amy | 19 |
实际应用场景
场景 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
子句时,确保条件表达式正确,避免逻辑错误。 - 对于复杂的查询,可以结合
AND
、OR
、NOT
等逻辑运算符来组合多个条件。
附加资源与练习
- 练习 1:编写一个 SQL 查询,从
employees
表中筛选出工资大于 5000 且部门为 'Sales' 的员工。 - 练习 2:编写一个 SQL 查询,从
orders
表中筛选出订单日期在 2023 年 1 月 1 日到 2023 年 12 月 31 日之间的订单。
通过不断练习,你将更加熟练地掌握 WHERE
子句的使用。