-- 由于很少需要检索表中的所有行,需要限定条件根据特定操作(搜索条件|过滤条件)或报告的需要提取表数据的子集
-- SELECT语句中,使用where字句进行过滤,where字句在表明(FROM字句)之后给出
SELECT prod_name,prod_priceFROM ProductsWHERE prod_price = 3.49;/* 注意在客户端应用进行数据库的操作会极大的影响应用的性能,服务器不得不通过网络发送多余的数据,会导致网络宽带的浪费。*/
-- 当ORDER BY 和WHERE 字句同时使用时,必须让ORDER BY 字句放置最后,否则会报错。
/* WHERE字句操作符
= 等于<> 不等于!= 不等于< 小于<= 小于等于!< 不小于> 大于>= 大于等于!> 不大于BETWEEN 在指定的两个值之间IS NULL 为NULL值 */#并不是所有的DBMS都支持-- 检查单个值
SELECT prod_name,prod_priceFROM ProductsWHERE prod_price < 10;SELECT prod_name,prod_price
FROM ProductsWHERE prod_price <= 10;输出结果同上,因为没有等于10美元的产品
-- 不匹配检查
SELECT vend_id,prod_nameFROM ProductsWHERE vend_id <> 'DLL01';#单引号用来限定字符串,与数值列进行比较的值不用引号
SELECT vend_id,prod_name
FROM ProductsWHERE vend_id != 'DLL01';输出结果和上面相同
-- 范围值检查(BETWEEN操作符,特点是需要两个值,一个开始值,一个结束值)
SELECT prod_name,prod_priceFROM ProductsWHERE prod_price BETWEEN 5 AND 10;-- 空值检查(NULL,它与字段包含0、空字符串或仅仅包含空格不同)
/* SELECT子句有一个特殊的WHERE子句,可用来检查具有NULL值的列(IS NULL)*/SELECT prod_nameFROM ProductsWHERE prod_price IS NULL;
由于表中没有这样的行,所以没有返回数据
SELECT *
FROM Customers;SELECT cust_name
FROM CustomersWHERE cust_email IS NULL;