mysql过滤数据(一)

表test

FieldTypeNullKeyDefaultExtra
idint(11)NOPRINULLauto_increment
namechar(50)NO NULL 
citychar(50)YES NULL 
schoolchar(50)YES NULL 

在SELECT语句中,根据WHERE子句中指定的搜索条件进行过滤。WHERE子句在表名(FROM子句)之后。

 

****SQL过滤与应用过滤    数据也可以在应用层过滤。为此目的,SQL的SELECT语句为客户机应用检索出超过实际所需的数据,然后客户机代码对返回数据进行循环,以提取出需要的行。通常,这种实现并不令人满意。因此,对数据库进行了优化,以便快速有效地对数据进行过滤。让客户机应用(或开发语言)处理数据库的工作将会极大地影响应用的性能,并且使所创建的应用完全不具备可伸缩性。此外,如果在客户机上过滤数据,服务器不得不通过网络发送多余的数据,这将导致网络带宽的浪费。

 

where子句操作符

操作符说明
=等于
<>不等于
!=不等于
<小于
<=小于等于
>大于
>=大于等于
BETWEEN在指定的两个值之间

 

例子:

检查单个值:

SELECT * FROM test WHERE name="tom";

此语句匹配name值为tom的一行。

注:MySQL执行匹配时默认不区分大小写,所以此例中tom TOm都将被匹配。

 

范围值检查:

可使用BETWEEN操作符,它需要两个值,即范围开始值和范围结束值,这两个值必须用AND关键字分隔,BETWEEN匹配范围中的所有值,包括开始值和结束值。

例如:

SELECT * FROM test WHERE age BETWEEN 20 AND  50;

此句检索age值在20和50之间的所有行。

 

空值检查:

在一个列不包含值时,称其为包含空值NULL;

可以用IS NULL子句判断某个列的值是否为空值。

例如:SELECT * FROM test WHERE city IS NULL;

此语句返回city列为空值的所有行。

 

注:在通过过滤选择出不具有特定值的行时,你可能希望返回具有NULL值的行。但是,不行。因为未知具有特殊的含义,数据库不知道它们是否匹配,所以在匹配过滤或不匹配时不返回它们。因此,在过滤数据时,一定要验证返回数据中确实给出了被过滤具有NULL的行。

 

 

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值