T-SQL:毕业生出门需知系列(四)
第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 值等
续集:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?