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) --筛选备注为空的
演示:
版权说明 : 本文为转载文章, 版权归原作者所有 版权申明
原文链接 : https://blog.csdn.net/weixin_46211269/article/details/122160417
内容来源于网络,如有侵权,请联系作者删除!