条件查询
语法格式:
SELECT 字段名1,字段名2,... FROM 表名 WHERE 查询条件;
注意:
(1)上面条件查询的语法格式的执行顺序是:先执行FROM,再执行WHERE,最后执行SELECT;
(2)条件查询需要用到WHERE语句,且WHERE必须要放到FROM语句的后面。
SQL条件查询支持以下运算符
运算符 | 说明 |
= | 等于 |
<> 或 != | 不等于 |
< | 小于 |
<= | 小于等于 |
> | 大于 |
>= | 大于等于 |
between…and… | 两个值之间,是闭区间[ ],等同于>=and<= between…and…在使用的时候,必须要左边小,右边大,否则查出的值为空。 |
is null | 为null(is not null不为空) |
and | 并且 |
or | 或者 |
in | 包含(相当于多个or),not in(不在这个范围中) |
not | not可以取非,主要用在is或者in中 |
like | like被称为模糊查询,支持%或者下划线匹配 |
1. =等于查询条件
举例说明:有一张students学生表,表的设计详见第016章节:https://blog.csdn.net/weixin_43184774/article/details/115295386
students学生表如下:
例1:查询students学生表中成绩等于100分的学生姓名?
SELECT name,score FROM students WHERE score = 100;
例2:查询students学生表中王强平的成绩?
SELECT name,score FROM students WHERE name = '王强平';
2. >大于查询条件
例:查询students学生表中成绩大于60分的学生姓名,并展示他们的分数?
SELECT name,score FROM students WHERE score > 60;
3. <小于查询条件
例:查询students学生表中成绩小于60分的学生姓名,并展示他们的分数?
SELECT name,score FROM students WHERE score < 60;
4. <>或!=不等于查询条件
例:查询students学生表中成绩不等于100分的学生姓名,并展示他们的分数?
SELECT name,score FROM students WHERE score <> 100;
5. BETWEEN…AND…查询条件
例:查询students学生表中成绩在60到90之间的学生姓名,并展示他们的分数?
SELECT name,score FROM students WHERE score BETWEEN 60 AND 90;
注意:BETWEEN…AND…查询条件除了可以使用在数字查询方面之外,还可以使用在字符串方面
6. IS NULL查询条件
例:查询students学生表中成绩为NULL的学生姓名?
SELECT name,score FROM students WHERE score IS NULL;
注意:
(1)在数据库当中,NULL不是一个值,它代表什么也没有,为空
(2)空不是一个值,不能用等号来衡量,必须使用IS NULL或者IS NOT NULL
7. OR查询条件
例:查询students学生表中没有成绩的学生姓名?
SELECT name,score FROM students WHERE score IS NULL OR score = 0;
8. AND和OR联合查询条件
例:查询students学生表中成绩大于60分并且班级是1班或3班的学生姓名?
SELECT name,score,class FROM students WHERE score > 60 AND class=1 OR class = 3;(×)
SELECT name,score,class FROM students WHERE class = 1 AND score > 60 OR class = 3 AND score > 60;(√)
SELECT name,score,class FROM students WHERE score > 60 and (class = 1 OR class = 3);(√)
9. IN查询条件
IN查询条件等同于OR,IN括号后面的值不是一个区间,是具体的值
例:查询students学生表中班级是1班和4班的学生姓名?
SELECT name,class FROM students WHERE class = 1 OR class = 4; (方式一)
SELECT name,class FROM students WHERE class IN(1,4); (方式二)
10. NOT IN查询条件
例:查询students学生表中班级不是1班和4班的学生姓名?
SELECT name,class FROM students WHERE class NOT IN(1,4);
11. LIKE查询条件
在模糊查询当中,必须要掌握两个特殊的符号,一个是%,一个是_
其中,%代表任意多个字符,_代表任意一个字符
例1:查询students学生表中所有姓张的学生姓名?
SELECT name FROM students WHERE name LIKE '%张%';
例2:查询students学生表中最后一个字是“明”字的学生姓名?
SELECT name FROM students WHERE name LIKE '%_明';
例3:查询students数据表中名字带有下划线的学生姓名?
SELECT name FROM students WHERE name LIKE '%\_%';