第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必知必会》一书的读书笔记(五)

T-SQL:毕业生出门需知系列(四)的更多相关文章

  1. T-SQL:毕业生出门需知系列(目录)

    一.前言: 作为一个应届毕业生又要准备面试 ASP.NET 攻城狮了,以前在图书馆觉得这本书讲得挺基础,这次回家就自己买了本用来复习,顺便做下读书笔记. 第4版 二.代码下载: 官方:http://f ...

  2. T-SQL:毕业生出门需知系列(五)

    第5课 高级数据过滤 5.1 组合 WHERE 子句 第4课介绍的 WHERE 子句在过滤数据时都是用单一的条件. 5.1.1 AND 操作符 检索由供应商 DLL01 制造且价格小于等于 4 美元的 ...

  3. T-SQL:毕业生出门需知系列(三)

    第3课 排序检索数据 3.1 排序数据(ORDER BY) 下面的 SQL 语句返回某个数据库表的单个列.观察其输出,并没有特定的顺序. SELECT prod_name FROM Products; ...

  4. T-SQL:毕业生出门需知系列(二)

    第2课 检索数据 2.1 SELECT 语句 用途:从一个或多个表中检索数据信息 关键字:作为SQL组成部分的保留字.关键字不能用作表或列的名字. 为了使用SELECT检索表数据,必须至少给出两条信息 ...

  5. T-SQL:毕业生出门需知系列(九)

    <SQL 必知必会>读书笔记 -- 第9课 汇总数据 9.1 聚集函数:对某些行运行的函数,计算并返回一个值 案例: -- 确定表中函数 -- 获得表中某些行的和 -- 找出表列的最大值. ...

  6. T-SQL:毕业生出门需知系列(八)

    第8课 使用函数处理数据 8.1 函数 [名词]可移植:所编写的代码可以在多个系统上运行 8.2 使用函数 8.2.1 文本处理函数 例1:使用 UPPER() 函数--将文本转换为大写 SELECT ...

  7. T-SQL:毕业生出门需知系列(七)

    第7课 创建计算字段 7.1 计算字段(格式化字段) 存储在数据库表中的数据一般不是应用程序所需要的格式,如: 1.需要显示公司名,同时还需要显示公司的地址,但这两个信息存储在不同的表列中. 2.列数 ...

  8. T-SQL:毕业生出门需知系列(六)

    第6课 用通配符进行过滤 6.1 LIKE 操作符 前面介绍的所有操作符都是针对已知值进行过滤.但是,这种过滤方法并不是任何时候都好用. 例如:怎样搜索产品名中包含文本 bean bag 的所有产品? ...

  9. SQL Server 2008空间数据应用系列四:基础空间对象与函数应用

    原文:SQL Server 2008空间数据应用系列四:基础空间对象与函数应用 友情提示,您阅读本篇博文的先决条件如下: 1.本文示例基于Microsoft SQL Server 2008 R2调测. ...

随机推荐

  1. java分享第十七天-02(封装操作excel类)

     java解析EXCEL用的是POI的JAR包,兼容EXCEL2003及2007+版本的EXCEL所需要的JAR包:poi-3.8.jarpoi-ooxml.jarpoi-ooxml-schemas. ...

  2. System.Dynamic.ExpandoObject 类型的简单使用

    该类型可以实现的是动态添加属性和移除属性,有点类似 js 中对象的操作,非常灵活 static void Main(string[] args) { dynamic obj = new System. ...

  3. 【TJOI&HEOI2016】【Bzoj4551】树

    这道题是可以用树链剖分来做的,但其实有比它更加简单的做法--并查集. 可以想到,这类题的一种常见做法是离线处理,先全部读入,再从后往前处理,每次遇到标记操作,就把这个点的标记次数减一,到零以后就把这个 ...

  4. 初学java之12 泛型编程的个人理解总结

    首先,强调一个观点: 对于我这样的初学者,一定要站在虚拟机和编译器的角度来分析java 语言的种种特性,泛型也不例外.(我认为这个一条正确的学习经验) 写这篇文章起源于最近在学java,有一天在路上和 ...

  5. java之数据结构之链表及包装类、包

    链表是java中的一种常见的基础数据结构,是一种线性表,但是不会按线性的顺序存储数据,而是在每一个节点里存到下一个节点的指针.与线性对应的一种算法是递归算法:递归算法是一种直接或间接的调用自身算法的过 ...

  6. 在iOS中使用ZXing库[转]

    前言 ZXing(Github镜像地址)是一个开源的条码生成和扫描库(开源协议为Apache2.0).它不但支持众多的条码格式,而且有各种语言的实现版本,它支持的语言包括:Java, C++, C#, ...

  7. 细说ES7 JavaScript Decorators

    开篇概述 在上篇的ES7之Decorators实现AOP示例中,我们预先体验了ES7的Decorators,虽然它只是一个简单的日志AOP拦截Demo.但它也足以让我们体会到ES7 Decorator ...

  8. c#语言-高阶函数

    介绍 如果说函数是程序中的基本模块,代码段,那高阶函数就是函数的高阶(级)版本,其基本定义如下: 函数自身接受一个或多个函数作为输入. 函数自身能输出一个函数,即函数生产函数. 满足其中一个条件就可以 ...

  9. [开源]C#二维码生成解析工具,可添加自定义Logo

    二维码又称 QR Code,QR 全称 Quick Response,是一个近几年来移动设备上超流行的一种编码方式,它比传统的 Bar Code 条形码能存更多的信息,也能表示更多的数据类型:比如:字 ...

  10. 如果调用ASP.NET Web API不能发送PUT/DELETE请求怎么办?

    理想的RESTful Web API采用面向资源的架构,并使用请求的HTTP方法表示针对目标资源的操作类型.但是理想和现实是有距离的,虽然HTTP协议提供了一系列原生的HTTP方法,但是在具体的网络环 ...