第4课、过滤数据
WHERE:过滤条件
使用 WHERE 子句 指定搜索条件进行过滤。
WHERE 子句操作符
表4-1 WHERE 子句操作符
操作符 | 说明 | 操作符 | 说明 |
---|---|---|---|
= | 等于 | > | 大于 |
< > | 不等于 | >= | 大于等于 |
!= | 不等于 | !> | 不大于 |
< | 小于 | BETWEEN | 在指定的两个值之间 |
<= | 小于等于 | IS NULL | 为 NULL 值 |
!< | 不小于 |
1)按指定列的值进行过滤 |
需求:只返回 prod_price 值为 3.49 的行
SELECT prod_name,prod_price
FROM Products
WHERE prod_price = 3.49;
-- 只返回 prod_price 值为 3.49 的行
输出结果:
提示:SQL 过滤与应用过滤(考试可能会问)
应用过滤:假定在 SQL 执行:
1)SELECT prod_name,prod_price FROM Products;
2)然后再在客户端应用的逻辑里对SQL 查询获得的数据,进行判断过滤条件,则输出最终结果。
缺点:
1.如果从服务端查询到的实际数据远远大于所需的数据,会大大浪费网络的宽带。
2.客户端应用处理的逻辑复杂,具备不可伸缩性。
2)检查单个值 |
需求:列出所有价格小于10 美元的产品
SELECT prod_name,prod_price
FROM Products
WHERE prod_price < 10;
输出结果:
3)不匹配检查 |
需求:列出所有不是供应商 DLL01 制造的产品。
SELECT vend_id,prod_name
FROM Products
WHERE vend_id <> 'DLL01';
-- 值为字符串,则使用引号。如果是数值,则不需要
输出结果:
4)范围值检查 |
需求:检索价格在5美元和10美元之间的所有产品。
SELECT prod_name,prod_price
FROM Products
WHERE prod_price BETWEEN 5 AND 10;
输出结果:
5)空值检查 |
需求:检索所有没有价格的产品。
SELECT prod_name
FROM Products
WHERE prod_price IS NULL;
输出结果:
总结
WHERE:过滤条件
SELECT 列1,列2
FROM 表
WHERE 过滤条件;