目录
我们知道从 MySQL 表中使用 SQL SELECT 语句来读取数据。
如需有条件地从表中选取数据,可将 where 子句添加到 select语句中。
以下是 SQL SELECT 语句使用 WHERE 子句从数据表中读取数据的通用语法:
select 字段名列表 from 表名 [where 条件]
where 类似于程序语言中的 if 条件,根据 MySQL 表中的字段值来读取指定的数据。
如:
select * from student where id=1;
执行顺序是先从表中选取数据,然后应用筛选条件,最后返回查询结果。
操作符 | 描述 | 实例 |
---|---|---|
= | 等号,检测两个值是否相等,如果相等返回true | (A = B) 返回false。 |
<>,!= | 不等于,检测两个值是否相等,如果不相等返回true | A != B) 返回 true。 |
> | 大于号,检测左边的值是否大于右边的值, 如果左边的值大于右边的值返回true | (A > B) 返回false。 |
< | 小于号,检测左边的值是否小于右边的值, 如果左边的值小于右边的值返回true | (A < B) 返回 true。 |
>= | 大于等于号,检测左边的值是否大于或等于右边的值, 如果左边的值大于或等于右边的值返回true | (A >= B) 返回false。 |
<= | 小于等于号,检测左边的值是否小于或等于右边的值, 如果左边的值小于或等于右边的值返回true | (A <= B) 返回 true。 |
判断字段值是否为null
is null: 当列的值是 null,此运算符返回 true。
is not null: 当列的值不为 null, 运算符返回 true
例如:查询class是null的记录
select * from student where class is null;
包含
in: 当列的值包含在列中时,返回true
not in:当列的值不包含在列中时,返回true
例如:查询班级为21计1,21计3班的学生信息
select * from student where class in('23计1','23计3');
相当于
select * from student where class='23计1' or class='23计3';
在2个值之间
between A and B:当列的值在A和B之间时,返回true
例如:查询年龄在16到18岁之间的学生信息
select * from student where age between 16 and 18;
模糊查询
有时候我们需要获取字段含有某个字符的所有记录,这时我们就需要在 where 子句中使用 like 子句。
like子句中使用百分号 % 字符来表示任意字符,_字符表示任意一个字符。
例如:查询姓王的记录
select * from student where name like '王%' ;
like示例如下:
'%a' //以a结尾的数据
'a%' //以a开头的数据
'%a%' //含有a的数据
'_a_' //三位且中间字母是a的
'_a' //两位且结尾字母是a的
'a_' //两位且开头字母是a的