只检索所需要数据需要指定搜索条件,搜索条件也称为过滤条件。
在SELECT语句中,数据根据WHERE子句中指定的搜索条件进行过滤,即WHERE 子句用于过滤记录,也就是WHERE 子句用于提取那些满足指定标准的记录。
WHERE子句在表名(FROM子句)之后给出。
WHERE子句不仅用于SELECT语法,还用于UPDATE,DELETE语法等!
WHERE子句的使用
WHERE子句支持:一个或多个值检查、模糊检查、不匹配检查、范围检查、空值检查、逻辑运算等等。
命令:
SELECT 列名 FROM 表名 WHERE 条件语句;
注意:在同时使用ORDER BY 和 WHERE子句时,应该让ORDER BY位于WHERE之后,否则会产生错误。
SQL过滤与应用过滤
数据也可以在应用层过滤。为此目的,SQL的SELECT语句为客户机应用检索出超过实际所需的数据,然后客户机对返回数据进行循环,以提取出需要的行。
通常这种实现并不令人满意,因此,对数据库进行了优化,以便快速有效地对数据进行过滤,让客户机应用(或开发语言)处理数据库的工作将会极大影响应用的性能,并且使所常见的应用完全不具备可伸缩性,此外,如果客户机上过滤数据,服务器不得不通过网络发送多余的数据,这将会导致网络带宽的浪费。
WHERE子句操作符
运算符 描述
= 等于
<>或!= 不等于。注释:在 SQL 的一些版本中,该操作符可被写成 !=
> 大于
< 小于
>= 大于等于
<= 小于等于
BETWEEN 在某个范围内
LIKE 搜索某种模式
IN 指定针对某个列的多个可能值
注意:
1、SQL 语句使用单引号来限定字符串(大部分数据库系统也接受双引号)。
2、如果是数值,请不要使用引号。
3、如果将值与串类型的列进行比较,则需要限定引号。
空值检查
在创建表时,表设计人员可以指定其中的列是否可以不包含值,在一个列中不包含值时,称其为包含空值(NULL)。
注意:NULL(无值)它与字段包含0、空字符串或仅仅包含空格不同,并且含有NULL的数学运算,最终的结果都是NULL。
SQL语句用WHERE子句检查具有NULL值的数据时使用 IS NULL子句。
命令:
SELECT * FROM 表名 WHERE 列名 IS NULL;
NULL与不匹配
在通过过滤选择出不具有特定值的行时,可能希望返回具有NULL值的行。但是,这样不可以,因为未知具有特殊的含义,数据库不知道他们是否匹配,所以在匹配过滤或不匹配过滤时不返回他们。 因此,在过滤数据时,一定要验证返回数据中确实给出了被过滤列具有NULL的行。
(责任编辑:IT) |