runoops.com

SQL WHERE 子句

WHERE 子句用于过滤记录。


SQL WHERE 子句

WHERE 子句用于提取那些满足指定条件的记录。

SQL WHERE 语法

SELECT column_name,column_name
FROM table_name
WHERE column_name operator value;


演示数据库

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

下面是选自 "websites" 表的数据:

+----+----------------+---------------------------+-------+---------+
| id | name           | url                       | alexa | country |
+----+----------------+---------------------------+-------+---------+
|  1 | Goole          | https://www.google.cm/    |     1 | USA     |
|  2 | Amazon         | https://z.cn/             |     2 | USA     |
|  3 | 淘宝           | https://www.taobao.com/   |    10 | CN      |
|  4 | 自学教程       | http://runoops.com/       |  5787 | CN      |
|  5 | 微博           | http://weibo.com/         |    18 | CN      |
|  6 | stackoverflow  | http://stackoverflow.com/ |    66 | IND     |
+----+----------------+---------------------------+-------+---------+


WHERE 子句实例

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

SELECT * FROM websites WHERE country='CN';

执行输出结果:

mysql> SELECT * FROM websites WHERE country='CN';
+----+--------------+-------------------------+-------+---------+
| id | name         | url                     | alexa | country |
+----+--------------+-------------------------+-------+---------+
|  3 | 淘宝         | https://www.taobao.com/ |    10 | CN      |
|  4 | 自学教程     | http://runoops.com/     |  5787 | CN      |
|  5 | 微博         | http://weibo.com/       |    18 | CN      |
+----+--------------+-------------------------+-------+---------+
3 rows in set (0.00 sec)

文本字段 vs. 数值字段

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

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

如果是数值字段,可以不使用引号。

SELECT * FROM websites WHERE id=1;

执行输出结果:

mysql> SELECT * FROM websites WHERE id=1;
+----+-------+------------------------+-------+---------+
| id | name  | url                    | alexa | country |
+----+-------+------------------------+-------+---------+
|  1 | Goole | https://www.google.cm/ |     1 | USA     |
+----+-------+------------------------+-------+---------+
1 row in set (0.00 sec)

WHERE 子句中的运算符

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

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