过滤数据
在SELECT语句中,可以通过WHERE子句对数据进行过滤。
WHERE子句在表名(FROM子句)之后给出。
条件操作符
Students表:
+----+----------+------+--------+-------+
| id | class_id | name | gender | score |
+----+----------+------+--------+-------+
| 1 | 1 | 小明 | M | 90 |
| 2 | 1 | 小红 | F | 95 |
| 3 | 1 | 小军 | M | 88 |
| 4 | 1 | 小米 | F | 73 |
| 5 | 2 | 小白 | F | 81 |
| 6 | 2 | 小兵 | M | 55 |
| 7 | 2 | 小林 | M | 85 |
| 8 | 3 | 小新 | F | 91 |
| 9 | 3 | 小王 | M | 89 |
| 10 | 3 | 小丽 | F | 88 |
+----+----------+------+--------+-------+
SELECT name,score FROM Students WHERE score >= 90;
+------+-------+
| name | score |
+------+-------+
| 小明 | 90 |
| 小红 | 95 |
| 小新 | 91 |
+------+-------+
下面列出了SQL支持的条件操作符:
=:等于操作符,用于比较两个值是否相等。
< >:不等于操作符,用于比较两个值是否不相等。
!=:不等于操作符,与< >功能相同,用于比较两个值是否不相等。
<:小于操作符,用于比较一个值是否小于另一个值。
<=:小于等于操作符,用于比较一个值是否小于或等于另一个值。
!:不小于操作符,与<=功能相反,用于比较一个值是否不小于另一个值。
>:大于操作符,用于比较一个值是否大于另一个值。
>=:大于等于操作符,用于比较一个值是否大于或等于另一个值。
!>:不大于操作符,与>=功能相反,用于比较一个值是否不大于另一个值。
BETWEEN:在指定的两个值之间操作符,用于判断一个值是否在指定的两个值之间。
IS NULL:为NULL值操作符,用于判断一个值是否为NULL。
提示:
如果将值与字符串类型的列进行比较,需要限定引号,用来与数值列进行比较的值不用引号。
SELECT name,gender,score FROM Students WHERE gender = 'M';
+------+--------+-------+
| name | gender | score |
+------+--------+-------+
| 小明 | M | 90 |
| 小军 | M | 88 |
| 小兵 | M | 55 |
| 小林 | M | 85 |
| 小王 | M | 89 |
+------+--------+-------+
范围值检查
要检查某个范围的值,可以使用BETWEEN操作符。
BETWEEN操作符需要两个值,即范围的开始值和结束值,用AND分隔。
SELECT name,score FROM Students WHERE score BETWEEN 90 AND 100;
+------+-------+
| name | score |
+------+-------+
| 小明 | 90 |
| 小红 | 95 |
| 小新 | 91 |
+------+-------+