在 select 语句中,数据根据 where 子句中指定的搜索条件进行过滤。where 子句在表名( from 子句)之后给出
where 的简单使用
select *
from sc
where score = 80;
此 sql 语句表示查询 sc
表中 score
字段等于 80 的所有信息,输出为:
+------+------+-------+
| SId | CId | score |
+------+------+-------+
| 01 | 01 | 80.0 |
| 02 | 03 | 80.0 |
| 03 | 01 | 80.0 |
| 03 | 02 | 80.0 |
| 03 | 03 | 80.0 |
+------+------+-------+
在同时使用 order by 和 where子句时,应该让 order by 位于 where 之后, 否则将会产生错误
where 子句的操作符
操作符 | 说明 |
---|---|
= | 等于 |
<> | 不等于 |
!= | 不等于 |
< | 小于 |
<= | 小于等于 |
> | 大于 |
>= | 大于等于 |
between | 介于指定值之间 |
检查单个值
select *
from sc
where score < 60;
此 sql 语句表示在 sc
表中查询满足 score
字段小于 60 的数据,输出为:
+------+------+-------+
| SId | CId | score |
+------+------+-------+
| 01 | 02 | 40.0 |
| 04 | 02 | 59.0 |
| 04 | 03 | 59.0 |
| 06 | 01 | 31.0 |
| 06 | 03 | 34.0 |
+------+------+-------+
不匹配检查
select *
from sc
where sid <> 2;
此 sql 语句表示查询 sc
表中 sid
字段不等于 2 的数据,语句中的 <>
操作符等同于 !=
,输出为:
+------+------+-------+
| SId | CId | score |
+------+------+-------+
| 01 | 01 | 80.0 |
| 01 | 02 | 40.0 |
| 01 | 03 | 99.0 |
| 03 | 01 | 80.0 |
| 03 | 02 | 80.0 |
| 03 | 03 | 80.0 |
| 04 | 01 | 72.0 |
| 04 | 02 | 59.0 |
| 04 | 03 | 59.0 |
| 05 | 01 | 76.0 |
| 05 | 02 | 87.0 |
| 06 | 01 | 31.0 |
| 06 | 03 | 34.0 |
| 07 | 02 | 89.0 |
| 07 | 03 | 98.0 |
+------+------+-------+
范围值检查
select *
from sc
where score between 60 and 100;
此 sql 语句表示查询 sc
表中 score
字段在 60 ~ 100 之间的数据,输出为:
+------+------+-------+
| SId | CId | score |
+------+------+-------+
| 01 | 01 | 80.0 |
| 01 | 03 | 99.0 |
| 02 | 01 | 70.0 |
| 02 | 02 | 60.0 |
| 02 | 03 | 80.0 |
| 03 | 01 | 80.0 |
| 03 | 02 | 80.0 |
| 03 | 03 | 80.0 |
| 04 | 01 | 72.0 |
| 05 | 01 | 76.0 |
| 05 | 02 | 87.0 |
| 07 | 02 | 89.0 |
| 07 | 03 | 98.0 |
其语法与其他 where 子句的操作符稍有不同,因为它需要两个值,即范围的开始值和结束值,这两个值必须用 and
关键字分隔
空值检查
select *
from sc
where score is null;
此 sql 表示查询 sc
表中 score
值为空值的数据,输出为(因为此表中 score 字段没有空值的数据,所以查询结果为 Empty set
):
Empty set (0.00 sec)
网友评论