介绍
通常在进行查询操作的时候,都是查询符合某些条件的数据,很少将表中所有数据都取出来。怎么取出表的部分数据?需要在查询语句中添加条件进行数据的过滤。常见的过滤条件如下:
| 条件 | 说明 |
|---|---|
| = | 等于 |
| <>或!= | 不等于 |
| >= | 大于等于 |
| <= | 小于等于 |
| > | 大于 |
| < | 小于 |
| between...and... | 等同于 >= and <= |
| is null | 为空 |
| is not null | 不为空 |
| <=> | 安全等于(可读性差,很少使用了)。 |
| and 或 && | 并且 |
| or 或 || | 或者 |
| in | 在指定的值当中 |
| not in | 不在指定的值当中 |
| exists | |
| not exists | |
| like | 模糊查询 |
条件查询语法格式
select
...
from
...
where
过滤条件;
过滤条件放在where子句当中,以上语句的执行顺序是:
第一步:先执行from
第二步:再通过where条件过滤
第三步:最后执行select,查询并将结果展示到控制台
等于 =
判断等量关系,支持多种数据类型,比如:数字、字符串、日期等。
案例1:查询月薪3000的员工编号及姓名

案例2:查询员工福特的岗位及月薪

案例3:查询岗位是经理的员工编号及姓名

不等于 <> 或 !=
案例1:查询工资不是3000的员工编号、姓名、薪资

大于、大于等于、小于、小于等于
案例:找出薪资大于等于3000的员工姓名、薪资

and
and表示并且,还有另一种写法:&&
案例:找出薪资大于等于3000并且小于等于5000的员工姓名、薪资。

or
or表示或者,还有另一种写法:||
案例:找出工作岗位是经理和总裁的员工姓名、工作岗位

and和or的优先级问题
and和or同时出现时,and优先级较高,会先执行,如果希望or先执行,这个时候需要给or条件添加小括号。另外,以后遇到不确定的优先级时,可以通过添加小括号的方式来解决。对于优先级问题没必要记忆。
案例:找出薪资小于1500,并且部门编号是20或30的员工姓名、薪资、部门编号。

between...and...
between...and...等同于 >= and <=
做区间判断的,包含左右两个边界值。
它支持数字、日期、字符串等数据类型。
between...and...在使用时一定是左小右大。左大右小时无法查询到数据。
between...and... 和 >= and <=只是在写法结构上有区别,执行原理和效率方面没有区别。
案例:找出薪资在1600到3000的员工姓名、薪资

is null、is not null
案例1:找出津贴为空的员工姓名、薪资、津贴。

案![image]()
例2:找出津贴不为空的员工姓名、薪资、津贴
in、not in
案例1:找出工作岗位是经理和销售员的员工姓名、薪资、工作岗位

案例2:找出工作岗位不是经理和销售员的员工姓名、薪资、工作岗位

模糊查询like
模糊查询又被称为模糊匹配,在实际开发中使用较多,比如:查询公司中所有姓张的,查询岗位中带有经理两个字的职位等等,这些都需要使用模糊查询。
模糊查询的语法格式如下:
select .. from .. where 字段 like '通配符表达式';
在模糊查询中,通配符主要包括两个:一个是%,一个是下划线_。其中%代表任意多个字符。下划线_代表任意一个字符。
案例1:查询员工名字以'S'开始的员工姓名

案例2:查询员工名字以'斯'结尾的员工姓名

案例3:查询员工名字中含有'克'的员工姓名

案例4:查询员工名字中第二个字母是'密'的员工姓名

案例5:查询学员名字中含有下划线的。
执行以下SQL语句,先准备测试数据:
drop table if exists student;
create table student(
id int,
name varchar(255)
);
insert into student(id,name) values(1, 'susan');
insert into student(id,name) values(2, 'lucy');
insert into student(id,name) values(3, 'jack_son');
select * from student;


浙公网安备 33010602011771号