SQL WHERE 子句用于在从单个表或多个联表(join)获取数据时指定条件所用。使用 WHERE 子句来过滤记录并仅获取必要的记录。值得注意的是,WHERE 子句不仅在 SELECT
语句中使用,还可以在 UPDATE
和 DELETE
语句中使用。
WHERE 语句
WHERE 子句用于提取那些满足指定条件的记录。
SELECT WHERE 语法
SELECT column_name1, column_name2, ...
FROM table_name
WHERE column_name operator value;
其中 operator
是逻辑运算符。
WHERE operator
WHERE 子句的逻辑运算符如下:
运算符 | 描述 |
---|---|
= |
等于。 |
<> |
不等于。注释:在 SQL 的一些版本中,该操作符可被写成 != 。 |
> |
大于。 |
< |
小于。 |
>= |
大于等于。 |
<= |
小于等于。 |
BETWEEN ... AND ... |
在某个范围内。 |
LIKE |
模糊匹配模式。 |
IN |
指定针对某个列的多个可能值。 |
IS |
和 = 类似,它更多是一种属性,此外,判断某个字段值是 NULL 时,条件为 IS NULL 。 |
NOT |
条件的否定,常和 BETWEEN、LIKE、IN 和 IS 等搭配使用。 |
文本字段 vs 数值字段
SQL 使用单引号来环绕文本值(大部分数据库系统也接受双引号)。
如果是数值字段,请不要使用引号。
文本字段 WHERE 条件示例如下:
SELECT * FROM user WHERE name = 'knowledgedict';
数值字段 WHERE 条件示例如下:
SELECT * FROM user WHERE id = 188;
示例
从薪水大于 2000 的 CUSTOMERS 表中获取 ID,名称和薪水字段示例如下:
SQL> SELECT id, name, salary FROM customers WHERE salary > 2000;
输出如下:
+----+----------+----------+ | id | name | salary | +----+----------+----------+ | 4 | Chaitali | 6500.00 | | 5 | Hardik | 8500.00 | | 6 | Komal | 4500.00 | | 7 | Muffy | 10000.00 | +----+----------+----------+