过滤数据

-- 由于很少需要检索表中的所有行,需要限定条件根据特定操作(搜索条件|过滤条件)或报告的需要提取表数据的子集

-- SELECT语句中,使用where字句进行过滤,where字句在表明(FROM字句)之后给出
SELECT prod_name,prod_price
FROM Products
WHERE prod_price = 3.49;

/* 注意在客户端应用进行数据库的操作会极大的影响应用的性能,服务器不得不通过网络发送多余的数据,会导致网络宽带的浪费。*/

-- 当ORDER BY 和WHERE 字句同时使用时,必须让ORDER BY 字句放置最后,否则会报错。

/* WHERE字句操作符
= 等于
<> 不等于
!= 不等于
< 小于
<= 小于等于
!< 不小于
> 大于
>= 大于等于
!> 不大于
BETWEEN 在指定的两个值之间
IS NULL 为NULL值
*/
#并不是所有的DBMS都支持

-- 检查单个值
SELECT prod_name,prod_price
FROM Products
WHERE prod_price < 10;

SELECT prod_name,prod_price
FROM Products
WHERE prod_price <= 10;

输出结果同上,因为没有等于10美元的产品

 

-- 不匹配检查
SELECT vend_id,prod_name
FROM Products
WHERE vend_id <> 'DLL01';

#单引号用来限定字符串,与数值列进行比较的值不用引号

SELECT vend_id,prod_name
FROM Products
WHERE vend_id != 'DLL01';

输出结果和上面相同

-- 范围值检查(BETWEEN操作符,特点是需要两个值,一个开始值,一个结束值)
SELECT prod_name,prod_price
FROM Products
WHERE prod_price BETWEEN 5 AND 10;

-- 空值检查(NULL,它与字段包含0、空字符串或仅仅包含空格不同)
/* SELECT子句有一个特殊的WHERE子句,可用来检查具有NULL值的列(IS NULL)*/
SELECT prod_name
FROM Products
WHERE prod_price IS NULL;

 

 由于表中没有这样的行,所以没有返回数据

SELECT *
FROM Customers;

SELECT cust_name
FROM Customers
WHERE cust_email IS NULL;

 

posted @ 2019-06-22 18:13  小宇啊  阅读(159)  评论(0编辑  收藏  举报