SQL WHERE 子句
WHERE
子句在 SQL 中用于过滤记录,只返回满足特定条件的记录。这个子句可以与各种条件和运算符结合使用,以实现复杂的查询需求。
语法
SELECT column1, column2, ...
FROM table_name
WHERE condition;
column1, column2, ...
:要选择的字段名称,可以为多个字段。如果不指定字段名称,则会选择所有字段。table_name
:要查询的表名称。condition
:指定过滤记录的条件。
参数说明
- 文本字段值需要使用单引号(
'
)环绕,例如'CN'
。 - 数值字段值不需要使用引号,例如
id=1
。
代码示例
假设我们使用的是名为 "Websites" 的表,该表包含了不同的网站信息,包括它们的名称、URL、Alexa 排名、国家等。
实例 1:选择国家为 "CN" 的所有网站
SELECT * FROM Websites WHERE country='CN';
执行输出结果:
+----+--------------+---------------------------+-------+---------+
| id | name | url | alexa | country |
+----+--------------+---------------------------+-------+---------+
| 2 | 淘宝 | https://www.taobao.com/ | 13 | CN |
| 3 | 菜鸟教程 | http://www.runoob.com/ | 4689 | CN |
| 4 | 微博 | http://weibo.com/ | 20 | CN |
+----+--------------+---------------------------+-------+---------+
这个查询返回了表中所有国家为 "CN" 的网站记录。
实例 2:选择 ID 为 1 的网站
SELECT * FROM Websites WHERE id=1;
执行输出结果:
+----+--------------+---------------------------+-------+---------+
| id | name | url | alexa | country |
+----+--------------+---------------------------+-------+---------+
| 1 | Google | https://www.google.com/ | 1 | USA |
+----+--------------+---------------------------+-------+---------+
这个查询返回了表中 ID 为 1 的网站记录。
WHERE 子句中的运算符
在 WHERE
子句中,可以使用多种运算符来定义条件:
- 比较运算符:
=
、<
、>
、<=
、>=
、<>
(不等于) - 逻辑运算符:
AND
、OR
、NOT
- 范围运算符:
BETWEEN
、IN
- 模式匹配运算符:
LIKE
、ILIKE
(不区分大小写) - 空值运算符:
IS NULL
、IS NOT NULL
示例 3:使用比较运算符
SELECT * FROM Websites WHERE alexa > 10;