您的位置:首页 > 数据库 > MySQL

mysql过滤数据(一)

2013-10-11 22:53 309 查看
表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的行。

 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息