MySQL

MySQL 知识量:16 - 40 - 165

4.1 使用where子句><

where子句- 4.1.1 -

通常我们需要的查询结果只是全部记录的一部分,要查询到需要的这部分数据,就要设置查询条件,也称为过滤数据。

where子句就是用来设置查询条件的,where后面跟具体的数据过滤条件,例如:

select * from student where age=10;

查询表student中年龄是10岁的学生信息。结果为:

+----+-------+-----+------+
| id | name  | age | sex  |
+----+-------+-----+------+
|  4 | Robot |  10 | male |
|  6 | Toney |  10 | male |
+----+-------+-----+------+

注意:如果同时要对结果进行排序,那么order by子句要在where子句的后面。

where子句操作符- 4.1.2 -

除了相等判断符之外,MySQL的where子句还有许多操作符,用于各种条件判断。

操作符说明
=等于
<>不等于
!=不等于
<小于
<=小于等于
>大于
>=大于等于
between在指定的两个值之间

检查单个值- 4.1.3 -

使用操作符进行单个列值的过滤很简单,例如:

select * from student where age>10 order by age;

查询表student中所有年龄age大于10岁的学生信息,并按年龄从小到大排序。结果为:

+----+-------+-----+--------+
| id | name  | age | sex    |
+----+-------+-----+--------+
|  1 | Susan |  11 | female |
|  3 | Bob   |  11 | male   |
|  5 | Jen   |  11 | female |
|  2 | Jame  |  12 | male   |
+----+-------+-----+--------+

不匹配检查- 4.1.4 -

不匹配检查就是过滤不相等的列值,可以使用“!=”或者“<>”,效果一样。

select * from student where name!='bob';

查询表student中除“bob”以外的所有人的信息。结果为:

+----+-------+-----+--------+
| id | name  | age | sex    |
+----+-------+-----+--------+
|  1 | Susan |  11 | female |
|  2 | Jame  |  12 | male   |
|  4 | Robot |  10 | male   |
|  5 | Jen   |  11 | female |
|  6 | Toney |  10 | male   |
+----+-------+-----+--------+

注意:如果字符串操作值是字符,那么必须在字符前后加单引号('bob');如果是数值则不必加引号。

范围值检查- 4.1.5 -

要查询某个范围内的数据,可以使用between操作符。其语法为:

between ... and ...

例如:要查询所有年龄在11到12岁之间的学生信息。

select * from student where age between 11 and 12;

查询结果为:

+----+-------+-----+--------+
| id | name  | age | sex    |
+----+-------+-----+--------+
|  1 | Susan |  11 | female |
|  2 | Jame  |  12 | male   |
|  3 | Bob   |  11 | male   |
|  5 | Jen   |  11 | female |
+----+-------+-----+--------+

空值检查- 4.1.6 -

如果在定义表时,设置其某个列可以为空,即可以不包含任何值时,就称其为包含空值NULL。

空值NULL与0值、空字符串或仅包含空格是不同的,它表示什么都没有,没有赋值的意思。

要检查某个列是否是空值,可以使用is null子句。例如:

select * from student where name is null;

因为name列被设置为不可为空,所以查询的结果就是空的(没有数据被查询到)。