文章目录
一、前言语法
like是用来匹配关键字的,意识是如果一段字符某个关键字,这一段字符就能被匹配查询到。跟我们正则表达式简单多了。具体看下面例子。
基本语法:
通配符%:可以匹配多个或多个字符的任意字符串
_下划线:匹配任何单个字符
[]:匹配指定范围或集合的任何单个字符
[^]:不属于指定范围火集合的任何单个字符
between:指定范围之间
二、实例一
在Emploee表中查询性“肖”的员工信息。
use db_Test
select * from Employee
where name like'肖%' --使用like和通配符%
演示:
二、实例二
交流群:696774324
在Employee表中查询性“章”并且最后一个字是“婷”的员工信息。
select * from Employee
where name like'章_婷'
演示:
三、实例三
在Employee表中查询Age在25到27之间的员工信息。
select * from Employee
where Age like '2[5-7]'
演示:
[5-7]意思就是五到七的意思。
四、实例四
在Employee表中查询Age不在25-27之间的员工信息。
select * from Employee
where Age like '2[^5-7]'
演示:
五、实例五
用between…and查询Age在25到27之间的员工信息。
select * from Employee
where Age between 25 and 27
演示:
六、实例六
is(not) null关键字用于对空值判断。具体举例如下:
少选性别为空的人
select * from Employee
where Sex is null
查询性别不为空的人:
select * from Employee
where Sex is not null
演示:
七、实例七
in关键字用来指定列表的搜索条件,确定指定的值是否与子查询或列表中的值相匹配。
举例:在Employee表中查询Id是001,002和003的员工信息。
select * from Employee
where ID in('001','002','003')
演示:
同样的道理,如果不是在这些id,则:
select * from Employee
where ID not in('001','002','003')
演示:
再来个例子,比如查询表中年龄大于雨欣和雨涵的员工信息:
select * from Employee
where Age > all
(
select Age from Employee
where Name in ('雨欣','雨涵')
)
演示:
age>all是大于雨欣和雨涵的的年龄最大值。
八、实例八
exists关键字用于指定一个子查询,测试行是否存在。
举例子如下:
在子查询中指定了结果集为null,并且使用exists求值,此时值仍然为true.
select * from Employee --把所有的打印出来看看
select ID,Name from Employee
where exists(select null) --筛选备注为空的
演示: