SQL Where
SQL WHERE 子句
Section titled “SQL WHERE 子句”WHERE 子句用于从结果集中过滤记录。它指定了行必须满足的条件,才能包含在 SELECT、UPDATE 或 DELETE 语句的输出中。
SQL WHERE 子句详解
Section titled “SQL WHERE 子句详解”当你查询一个表时,通常不需要所有行。WHERE 子句允许你只提取满足指定条件或一组条件的记录。
SQL WHERE 语法
Section titled “SQL WHERE 语法”SELECT column1, column2, … FROM table_name WHERE condition;
condition 是一个表达式,对于每一行都会评估其结果为 true、false 或 unknown。只有条件为 true 的行才会被返回。
在这些示例中,我们将使用一个标准的 “Customers” 表。
“Customers” 表的部分数据示例如下:
CustomerID CustomerName ContactName Address City PostalCode Country
1 Alfreds Futterkiste Maria Anders Obere Str. 57 Berlin 12209 Germany
2 Ana Trujillo Emparedados y helados Ana Trujillo Avda. de la Constitución 2222 México D.F. 05021 Mexico
3 Antonio Moreno Taquería Antonio Moreno Mataderos 2312 México D.F. 05023 Mexico
4 Around the Horn Thomas Hardy 120 Hanover Sq. London WA1 1DP UK
5 Berglunds snabbköp Christina Berglund Berguvsvägen 8 Luleå S-958 22 Sweden
WHERE 子句示例
Section titled “WHERE 子句示例”以下 SQL 语句从 “Customers” 表中选择所有来自 “Mexico”(墨西哥)的客户:
SELECT *FROM CustomersWHERE Country = 'Mexico';此查询将返回示例数据中的第 2 行和第 3 行。
条件中的文本字段与数值字段
Section titled “条件中的文本字段与数值字段”在 WHERE 子句中指定条件时:
- **文本值(字符串)**必须用单引号括起来(例如
‘Mexico’)。大多数数据库系统也允许使用双引号,但单引号是标准的 SQL 实践。 - 数值不应加引号(例如
CustomerID = 1)。
数值字段示例:
SELECT CustomerName, CityFROM CustomersWHERE CustomerID = 1;此查询将返回来自柏林的 Alfreds Futterkiste。
WHERE 子句中的运算符
Section titled “WHERE 子句中的运算符”你可以在 WHERE 子句中使用各种运算符来定义条件:
| 运算符 | 描述 |
|---|---|
| = | 等于 |
| <> | 不等于。(某些 SQL 版本也支持 !=) |
| > | 大于 |
| < | 小于 |
| >= | 大于或等于 |
| <= | 小于或等于 |
| BETWEEN | 检查值是否在包含指定边界的范围内(例如 Price BETWEEN 10 AND 20)。 |
| LIKE | 搜索匹配特定模式的值(通常与通配符 ’%’ 或 ’_’ 一起使用)。 |
| IN | 检查值是否匹配列表中的任何值(例如 Country IN (‘Germany’, ‘France’, ‘UK’))。 |
| IS NULL | 检查值是否为 NULL。 |
| IS NOT NULL | 检查值是否不为 NULL。 |
你还可以使用逻辑运算符 AND、OR 和 NOT 组合多个条件。这将在单独的章节中介绍。
实际应用:
WHERE 子句对于检索数据的特定子集、更新目标行或删除特定记录至关重要。例如,查找所有逾期发票、更新特定订单的状态或删除非活跃用户账户。