SQL WHERE 子句

WHERE 子句用于提取满足指定条件的数据库记录。

 

1. WHERE 语法

SELECT column_name,column_name
FROM table_name
WHERE column_name operator value;

在本教程中,我们将使用 CodeBaoku 样本数据库。

下面是 "Websites" 表的样本数据:

+----+--------------+---------------------------+-------+---------+
| id | name         | url                       | alexa | country |
+----+--------------+---------------------------+-------+---------+
| 1  | Google       | https://www.google.cm/    | 1     | USA     |
| 2  | 淘宝          | https://www.taobao.com/   | 13    | CN      |
| 3  | 编程宝库      | http://www.codebaoku.com/  | 4689  | CN      |
| 4  | 微博          | http://weibo.com/         | 20    | CN      |
| 5  | Facebook     | https://www.facebook.com/ | 3     | USA     |
+----+--------------+---------------------------+-------+---------+

 

2. WHERE 范例

下面的 SQL 语句从 "Websites" 表中选取国家为 "CN" 的所有网站:

SELECT * FROM Websites WHERE country='CN';

执行结果:
+----+--------------+---------------------------+-------+---------+
| id | name         | url                       | alexa | country |
+----+--------------+---------------------------+-------+---------+
| 2  | 淘宝          | https://www.taobao.com/   | 13    | CN      |
| 3  | 编程宝库      | http://www.codebaoku.com/  | 4689  | CN     |
| 4  | 微博          | http://weibo.com/         | 20    | CN      |
+----+--------------+---------------------------+-------+---------+

 

3. 文本字段 和 数值字段

SQL 使用单引号来环绕文本值(大部分数据库系统也接受双引号)。

在上个范例中 'CN' 文本字段使用了单引号。

如果是数值字段,请不要使用引号。

SELECT * FROM Websites WHERE id=1;

执行结果:
+----+--------------+---------------------------+-------+---------+
| id | name         | url                       | alexa | country |
+----+--------------+---------------------------+-------+---------+
| 1  | Google       | https://www.google.cm/    | 1     | USA     |
+----+--------------+---------------------------+-------+---------+

 

4. WHERE 子句中的运算符

下面的运算符可以在 WHERE 子句中使用:

运算符 描述
= 等于
<> 不等于。注释:在 SQL 的一些版本中,该操作符可被写成 !=
> 大于
< 小于
>= 大于等于
<= 小于等于
BETWEEN 在某个范围内
LIKE 搜索某种模式
IN 指定针对某个列的多个可能值

AND 和 OR 运算符用于查询符合一个以上条件的数据库记录。AND 运算符表示同时符合两个条件的记录, OR 运算符表示符合其中一个条件的记录。