这一课讲如何使用select语句的where子句指定搜索条件。
4.1 使用where子句
通常只会根据特定操作或报告的需要提取表数据的子集,主要指定搜索条件(search criteria)或称为过滤条件(filter condition).
根据where子句中指定的搜索条件进行过滤,where子句在表名(from子句)之后给出:
这个例子使用了简单的相等检验:检查这一列的值是否为指定值。SQL不只能测试等于,还能做更多的事情。
!!!在同时使用order by 和where子句时,应该让order by 位于where之后。
4.2 where子句操作符
相等检验时看到的第一个where子句,它确定一个列是否包含指定的值。
SQL支持表列出所有条件操作符,某些操作符是冗余的(等价的),但是并非多有DBMS都支持这些操作符,如下表:
= | 等于 | > | 大于 |
<> | 不等于 | >= | 大于等于 |
!= | 不等于 | !> | 不大于(小于等于) |
< | 小于 | between | 在指定两值之间 |
<= | 小于等于 | is null | 为null值 |
!< | 不小于(大于等于) |
4.2.1 检查单个值
小于:
小于等于:
4.2.2 不匹配检查
列出所有不是供应商DLL01制造的产品:
!!!单引号用来限定字符串,将值与字符串类型的列进行比较,需要用限定引号;用与数值列进行比较的值不用引号。
4.2.3 范围值检查
要检查某个范围的值,使用between操作符,其语法与其他where子句的操作符稍有不同,需要两个值,一个范围的开始值,一个范围的结束值。
例如:
between必须与and连用(更英语一样),匹配范围中的所有值,包括指定的开始值和结束值。
4.2.4 空值检查
一个列不包含值时,称其包含控制null(无值,no value),与字段包含0,空字符串或仅仅包含空格不同。
用来检查具有null值得列,不能用是否等于,应该用is null子句!!!
这个例子,显示没有电子邮件地址的cust_name.