T-SQL:毕业生出门需知系列(四)

本文详细介绍了SQL中使用WHERE子句过滤数据的方法,包括如何通过相等、不等、范围值和NULL值的检查来筛选所需的数据。同时讨论了在应用层过滤的利弊,并强调了WHERE子句的位置重要性。

第4课 过滤数据

 

4.1 使用 WHERE 子句:过滤

  只检索所需数据需要指定搜索条件(即过滤条件)。

  WHERE 子句在表名(FROM 子句)后给出,根据 WHERE 子句中指定的条件过滤。

SELECT prod_name, prod_price
FROM Products
WHERE prod_price = 3.49;
--    分析:从 Products 表中检索两个列,只返回 prod_price 值为 3.49 的行

  【提示】SQL 过滤与应用过滤:

    数据也可以在应用层过滤。但是在优化数据库后可以更快速地对数据进行过滤,如果让客户端应用(或开发语言)处理数据库的工作将会极大地影响应用的性能,并且使所创建的应用完全不具备可伸缩性。此外,也可能会导致网络带宽的浪费。

  【注意】WHERE 子句的位置:

    在同时使用 ORDER BY 和 WHERE 子句时,ORDER BY 要位于 WHERE 之后。

 

4.2 WHERE 子句操作符

--    =====表4-1 WHERE子句操作符=====
--    操作符    说明            操作符    说明
--    =        等于            >        大于
--    <>        不等于        >=        大于等于
--    !=        不等于        !>        不大于
--    <        小于            BETWEEN    在指定的两个值之间
--    <=        小于等于        IS NULL    为NULL值
--    !<        不小于

 

4.2.1 检查单个值

  列出所有价格小于 10 美元的商品:

SELECT prod_name, prod_price
FROM Products
WHERE prod_price < 10;

  

 

  检索所有价格小于等于 10 美元的产品:(结果同上图)

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

 

4.2.2 不匹配检查

  列出所有不是供应商 DLL01 制造的产品

SELECT vend_id, prod_name
FROM Products
WHERE vend_id <> 'DLL01';
--    第二种写法
SELECT vend_id, prod_name
FROM Products
WHERE vend_id != 'DLL01';

 

4.2.3 范围值检查(BETWEEN)

  检索价格在 5 美元和 10 美元之间的所有产品

SELECT prod_name, prod_price
FROM Products
WHERE prod_price BETWEEN 5 AND 10

 

4.2.4 空值检查(NULL)

  在一个列不包含值时,称其包含空值 NULL

  NULL:无值,与字段包含0、空字符串或仅仅包含空格不同

  【注意】确定值是否为 NULL,不能简单地检查是否 =NULL,应该使用 IS NULL

 

  检索没有电子邮件的顾客:

SELECT cust_name, cust_email
FROM Customers
WHERE cust_email IS NULL

 

4.3 小结

  • 使用 WHERE 过滤数据
  • 学习检验相等、不等、大于、小于、值的范围及 NULL 值等

 

续集:

  SQLServer:《SQL必知必会》一书的读书笔记(三)

  SQLServer:《SQL必知必会》一书的读书笔记(五)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值