跳到主要内容

MySQL WHERE 子句

在 MySQL 中,WHERE 子句是用于过滤查询结果的关键工具。它允许你指定条件,从而只返回满足这些条件的记录。无论是简单的查询还是复杂的多表连接,WHERE 子句都是不可或缺的一部分。

什么是 WHERE 子句?

WHERE 子句用于在 SELECTUPDATEDELETE 等语句中指定条件,以便只操作或返回满足这些条件的记录。它通常跟在 FROM 子句之后,语法如下:

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

其中,condition 是一个逻辑表达式,可以是比较运算符(如 =>< 等)或逻辑运算符(如 ANDORNOT)的组合。

基本语法

1. 使用比较运算符

比较运算符用于比较两个值。常见的比较运算符包括:

  • =:等于
  • >:大于
  • <:小于
  • >=:大于等于
  • <=:小于等于
  • <>!=:不等于

示例:

假设我们有一个名为 employees 的表,包含以下数据:

idnameagedepartment
1Alice30HR
2Bob25IT
3Charlie35Finance
4David28IT

如果我们想查询年龄大于 30 的员工,可以使用以下 SQL 语句:

sql
SELECT * FROM employees WHERE age > 30;

输出:

idnameagedepartment
3Charlie35Finance

2. 使用逻辑运算符

逻辑运算符用于组合多个条件。常见的逻辑运算符包括:

  • AND:所有条件都必须为真
  • OR:至少一个条件为真
  • NOT:条件为假

示例:

如果我们想查询年龄大于 25 且在 IT 部门工作的员工,可以使用以下 SQL 语句:

sql
SELECT * FROM employees WHERE age > 25 AND department = 'IT';

输出:

idnameagedepartment
4David28IT

3. 使用 INBETWEEN

  • IN:用于匹配列表中的任意一个值
  • BETWEEN:用于匹配某个范围内的值

示例:

如果我们想查询年龄在 25 到 30 岁之间的员工,可以使用以下 SQL 语句:

sql
SELECT * FROM employees WHERE age BETWEEN 25 AND 30;

输出:

idnameagedepartment
1Alice30HR
2Bob25IT
4David28IT

4. 使用 LIKE 进行模式匹配

LIKE 用于在 WHERE 子句中进行模式匹配。常用的通配符包括:

  • %:匹配任意数量的字符(包括零个字符)
  • _:匹配单个字符

示例:

如果我们想查询名字以 "A" 开头的员工,可以使用以下 SQL 语句:

sql
SELECT * FROM employees WHERE name LIKE 'A%';

输出:

idnameagedepartment
1Alice30HR

实际应用场景

场景 1:过滤特定日期的订单

假设我们有一个 orders 表,包含以下数据:

order_idcustomer_idorder_dateamount
11012023-10-01100.00
21022023-10-02200.00
31032023-10-03150.00

如果我们想查询 2023 年 10 月 2 日的订单,可以使用以下 SQL 语句:

sql
SELECT * FROM orders WHERE order_date = '2023-10-02';

输出:

order_idcustomer_idorder_dateamount
21022023-10-02200.00

场景 2:过滤特定价格区间的产品

假设我们有一个 products 表,包含以下数据:

product_idproduct_nameprice
1Laptop1200
2Smartphone800
3Tablet500

如果我们想查询价格在 500 到 1000 之间的产品,可以使用以下 SQL 语句:

sql
SELECT * FROM products WHERE price BETWEEN 500 AND 1000;

输出:

product_idproduct_nameprice
2Smartphone800
3Tablet500

总结

WHERE 子句是 MySQL 中用于过滤数据的重要工具。通过使用比较运算符、逻辑运算符、INBETWEENLIKE 等,你可以灵活地定义查询条件,从而获取所需的数据。

提示

在实际应用中,WHERE 子句通常与其他 SQL 子句(如 ORDER BYGROUP BY 等)结合使用,以实现更复杂的查询功能。

附加资源

练习

  1. 查询 employees 表中年龄小于 30 且不在 IT 部门工作的员工。
  2. 查询 orders 表中金额大于 150 的订单。
  3. 查询 products 表中价格在 1000 以上的产品。

通过完成这些练习,你将更好地掌握 WHERE 子句的使用方法。