【数据库5】过滤查询

原文链接:http://blog.csdn.net/coder_pig/article/details/43702341

本节引言:
上一节我们学习了基本的数据检索,这节我们来学习高级一点的
过滤查询~

1.单字符过滤:
就是使用”_”这个下划线来替代一个字符,比如,我们想检索出:
door,book,cool,took这类字符串的话,我们可以使用”oo
比如我们使用下述SQL语句:

SELECT * FROM T_Worker WHERE FName LIKE ‘_a_y’

运行后:
这里写图片描述
如果你的DBMS支持中文的话

SELECT * FROM T_Worker WHERE FDName LIKE ‘__ 部 ‘

运行后:
这里写图片描述

2.多字符过滤:
当然有的时候,字符的个数可能是不定的,比如:
①我们查询表中姓名是以字符”J”开头的字符串
这个时候就要用到”%”这个通配符
SQL语句如下:

SELECT * FROM T_Worker WHERE FName LIKE ‘J%’

运行结果如下:
这里写图片描述

②当然,你可以同时用多个%,比如我们使用下面的SQL语句:

SELECT * FROM T_Worker WHERE FName LIKE ‘%a%y’

运行结果如下:
这里写图片描述

③你也可以搭配着单字符的”_”那个使用
比如:取出表中名字含有’a’且是倒数第二个字母的记录:

SELECT * FROM T_Worker WHERE FName LIKE ‘%a_’

运行结果:
这里写图片描述

另外,还有一个用法,例子:
不是以J开头的记录:

SELECT * FROM T_Worker WHERE NOT ( FName LIKE ‘J%’ )

3.空值检测:
有时可能需要我们对表中的空值进行检测,比如检测工人表中工资为空的人员的信息:
如果直接WHERE FSalary = null是不行的,必须得使用”IS NULL”这个关键字
如下面的SQL语句:

SELECT * FROM T_Worker WHERE FSalary IS NULL

运行后:
这里写图片描述
当然你也可以判断不为空,改成IS NOT NULL就可以了!

4.反义运算符
就是不等于,不小于,不大于,某些DBMS是可以直接使用”!”符号,又或者
<>表示等于,<=不大于,>=不小于
当然,为了适应不同的数据库,我们可以变通下使用NOT运算符,使用下述SQL来完成:
比如以下这条SQL语句:
SELECT * FROM T_Worker
WHERE NOT( FAge = 22) AND NOT ( FSalary < 3000 )

运行结果:
这里写图片描述
分析:这个SQL语句很简单,就是筛选年龄不为22,以及工资不小于3000元的员工信息~

5.多个值的筛选
从上面我们知道可以通过运算符OR,NOT,AND来筛选多个值,
假如有多个值,比如我们需要查询表中年龄为:18,20,22,24,26的员工的信息
我们可以写多个OR来完成,但假如,不止五个值呢?10个或者更多,这个时候
不但写起来麻烦,维护起来也难,而且一不小心就可能引起数据错误!对于这种情况
SQL为我们提供了IN语句
上面查询年龄的SQL可以这样写:

SELECT * FROM T_Worker
WHERE FAge IN(18 , 20, 22 ,24 , 26)

运行SQL:
这里写图片描述

6.范围值的筛选
上面这种情况适合于特定值筛选的部分,假如是一个范围值呢?比如我要筛选
18-25,30-50的员工呢?当然,可以直接用上面的IN关键字,不过写起来有点麻烦
假如我们筛选的是工资呢?有小数,你怎么玩,这个时候就要用到SQL为我们提供的
另一个语句:BETWEEN AND语句了!
上述这个问题的SQL语句如下:

SELECT * FROM T_Worker
WHERE (FAge BETWEEN 18 AND 20)
OR ( FAge BETWEEN 30 AND 50 )

运行SQL:
这里写图片描述
另外,从查询结果我们也知道了BETWEEN AND查询范围是包括边界值的
比如上面的18!

关于本节内容,到此结束~谢谢

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值