数据库中一般包含大量的数据,很少需要检索表中所有行,通常只根据特定操作或报告的需要提起数据的子集。只检索所需数据需要指定搜索条件,搜索条件也称为过滤条件在SELECT语句中,数据根据WHERE子句中指定搜索条件进行过滤。
举例:查询指定年龄
输入:SELECT * FROM student s WHERE s.age =13
输出:
注释:
数据也可以在应用层过滤。为此目的,SQL的SELECT语句为客户机应用检索出超过实际所需的数据,然后客户机代码对返回数据进行循环,以提取出需要的行
存在缺陷:
1,让客户机应用(或开发语言)处理数据库的工作将会极大地影响应用的性能,并且使所创建的应用完全不具备可伸缩性。
2,如果在客户机上过滤数据,服务器不得不通过网络发送多余的数据,这将导致网络带宽的浪费。
WHERE 子句操作符
等于
输入:
SELECT * FROM student s WHERE s.name ='王一'
分析:检查 name中,返回相name 为“王一”的行
输出:
检测单个值
小于
输入:SELECT * FROM student s WHERE s.age <20
输出:
小于等于
输入:SELECT * FROM student s WHERE s.age <=19
输出:
大于
输入:SELECT * FROM student s WHERE s.age >15
输出:
大于等于
输入:SELECT * FROM student s WHERE s.age >=15
输出:
不匹配检查
不等于
-
<>
输入:SELECT * FROM student s WHERE s.age <> 19
输出:
-
!=
输入:SELECT * FROM student s WHERE s.age != 19
输出:
注释:
WHERE子句中,有的值括在单引号内。有的值未括起来。单引号用来限定字符串。如果将值与串类型的。
单引号用来限定字符串。如果将值与串类型的,列进行比较,则需要限定引。用来与数值列进行比较的值不用引号
范围检查
检查某个范围值,可使用BETWEEN操作符。
- 举例,检查年龄15到19岁之间
输入:SELECT * FROM student s WHERE s.age BETWEEN 15 AND 19;
输出:
空值检查
检查具有NULL值的列
举例:获取表中,年龄为NULl的
输入:SELECT * FROM student s WHERE s.age IS NULL
输出: