学习笔记 | Ch 04-06 过滤数据
发布日期:2021-07-25 15:44:01 浏览次数:11 分类:技术文章

本文共 2946 字,大约阅读时间需要 9 分钟。

第4课 过滤数据

  • 这一课将讲授如何使用SELECT语句的WHERE子句指定搜索条件。我们学习了如何检验相等、不相等、大于、小于、值的范围以及NULL值等。

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

4.1 使用WHERE子句

只检索所需数据需要指定搜索条件(search criteria),搜索条件也称为过滤条件(filter condition)。

SELECT语句中,数据根据WHERE子句中指定的搜索条件进行过滤。WHERE子句在表中(FROM子句)之后给出。

注意:WHERE子句的位置

在同时使用ORDER BYWHERE子句时,应该让ORDER BY位于WHERE之后,否则将会产生错误。

4.2 WHERE子句操作符

在这里插入图片描述

  • 并非所有DBMS都支持这些操作符。
4.2.1 检查单个值
4.2.2 不匹配检查
注意:是 != 还是 <> ?

!= 和 <>通常可以互换。但是,并非所有DBMS都支持这两种不等于操作符。

4.2.3 范围值检查

要检查某个范围的值,可以使用BETWEEN操作符。

在使用BETWEEN时,必须指定两个值——所需范围的低端值和高端值。这两个值必须用AND关键字分割。BETWEEN匹配范围中所有的值,包括指定的开始值和结束值。

4.2.4 空值检查

表设计人员可以指定其中的列能否不包含值。

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

NULL

无值no value,它与字段包含0,空字符或仅仅包含空格不同。

SELECT语句有一个特殊的WHERE子句,可用来检查具有NULL值的列。这个WHERE子句就是IS NULL子句。

注意:NULL和非匹配

过滤数据时,一定要验证被过滤列中含NULL的行确实出现在返回的数据中。

4.3 小结


第5课 高级过滤数据

讲授如何组合WHERE子句以建立功能更强、更高级的搜索条件。

讲授了如何使用ANDOR操作度组合成WHERE子句。
讲授了如何明确地管理求值顺序,如何使用NOTIN操作符。

5.1 组合WHERE子句

SQL允许给出多个WHERE子句。这些子句有两种使用方式,即以AND子句或OR子句的方式使用。

操作符operator:

用来联结或改变WHERE子句中的子句的关键字,也称为逻辑操作符logical operator

5.1.1 AND操作符

要通过不止一个列进行过滤,可以使用AND操作符给WHERE子句附加条件。AND指示DBMS只返回满足所有给定条件的行。

  • 可以增加多个过滤条件,每个条件间都要使用AND关键字。
5.1.2 OR操作符

许多DBMSOR WHERE子句的第一个条件得到满足的情况下,就不再计算第二个条件了。

OR操作符告诉DBMS匹配任一条件而不是同时匹配两个条件。

5.1.3 求值顺序

WHERE子句可以包含任意数目的ANDOR操作符。允许两者结合以进行复杂、高级的过滤。

提示:在WHERE子句中使用圆括号

任何时候使用具有ANDOR操作符的WHERE子句,都应该使用圆括号明确地分组操作符。

5.2 IN操作符

IN操作符用来指定条件范围,范围中的每一个条件都可以进行匹配。IN取一组由逗号分割、括在圆括号中的合法值。

IN操作符完成了与OR相同的功能。

为什么要使用IN操作符呢?
  • 在有很多合法选项时,IN操作符的语法更清楚,更直观。
  • 在与其他ANDOR操作符组合使用IN时,求值顺序更容易管理。
  • IN操作符一般比一组OR操作符执行得更快(在上面这个合法选项很少的例子中,你看不出性能差异)。
  • IN的最大优点是可以包含其他SELECT语句,能够更动态地建立WHERE子句。

5.3 NOT操作符

WHERE子句中的NOT操作符有且只有一个功能,那就是否定其后所跟的任何条件。

NOT关键字可以用在要过滤的列前,而不仅是在其后。

说明:MariaDB中的NOT

MariaDB支持使用NOT否定INBETWEENEXIST子句。大多数DBMS允许使用NOT否定任何条件。


第6课 用通配符进行过滤

这一课介绍什么是通配符、如何在WHERE子句中使用通配符以及怎样使用LIKE操作符进行通配搜索,以便对数据进行复杂过滤。还说明了通配符应该细心使用,不要使用过度。

在这里插入图片描述

6.1 LIKE操作符

利用通配符,可以创建比较特定数据的搜索模式。

通配符wildcard

用来匹配值的一部分的特殊字符。

搜索模式search pattern

由字面值、通配符或两者组合构成的搜索条件。

通配符本身实际上是SQLWHERE子句中有特殊含义的字符,SQL支持几种通配符。为在搜索子句中使用通配符,必须使用LIKE操作符。LIKE指示DBMS,后跟的搜索模式利用通配符匹配而不是简单的相等匹配进行比较。

谓词predicate

操作符何时不是操作符?答案是,它作为谓词时。从技术上说,LIKE谓词而不是操作符。

通配符搜索只能用于文本字段(字符串),非文本数据类型字段不能使用通配符搜索。

6.1.1 百分号%通配符

在搜索串中,%表示任何字符出现任意次数。

说明:区分大小写

根据DBMS的不同及其配置,搜索可以是区分大小写的。例如,‘%fish%’。匹配不到’daFishdad’。

  • 通配符可在搜索模式中的任意位置使用,并且可以使用多个通配符。
说明:请注意后面所跟的空格

包括Access在内的许多DBMS都用空格来填补字段的内容。简单的解决方案是给搜索模式再增加一个%'F%y%'还匹配y后面的空格。更好的解决办法是用函数去掉空格。

注意:请注意NULL

通配符%看起来像是可以匹配任何东西,但有个例外,这就是NULL。子句WHERE prod_name LIKE '%'不会匹配产品名称为NULL的行。

6.1.2 下划线_通配符

下划线的用途与%一样,但它只匹配单个字符,而不是多个字符。

说明:DB2通配符

DB2不支持通配符_。

说明:Access通配符

如果使用的是Microsoft Access,需要使用?而不是_

6.1.3 方括号[]通配符

方括号通配符用来制定一个字符集。它必须匹配指定位置的一个字符。

说明:并不总是支持集合

与前面描述的通配符不一样,并不是所有DBMS都支持用来创建集合的[]。只有微软的AccessSQL Server支持集合。为确定你使用的DBMS是否支持集合,请参阅相应的文档。

  • [JM]匹配方括号中任意一个字符,它也只能匹配单个字符。
  • 此通配符可以用前缀字符^脱字号来否定。
说明:Access中的否定集合

如果使用的是Microsoft Access,需要用!而不是^来否定一个集合,因此,使用的是[!JM]而不是[^JM]

  • 可以使用NOT操作符得出类似的结果。^的唯一优点是在使用多个WHERE子句时可以简化语法。

6.2 使用通配符的技巧

  • 不要过度使用通配符。如果其他操作符能达到相同的目的,应该使用其他操作符。
  • 在确实需要使用通配符时,也尽量不要把它们用在搜索模式的开始处。把通配符置于开始处,搜索起来是最慢的。
  • 仔细注意通配符的位置。如果放错地方,可能不会返回想要的数据。

参考资料

  • 《SQL必知必会》第4课 — 第6课

转载地址:https://blog.csdn.net/qq_34170700/article/details/104011898 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:Lenovo 50-80安装系统教程
下一篇:学习笔记 | Ch02-03 检索数据 select

发表评论

最新留言

不错!
[***.144.177.141]2024年03月28日 12时51分19秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

《逃不开的经济周期》书中的精髓:经济周期是推动创新变革和经济增长以及复兴的关键力量。 2019-04-26
《朋友还是对手》书中的精髓:奥地利学派和芝加哥学派两派共识远多于分歧,两派首先是朋友,其次才是对手。 2019-04-26
《动物精神》书中的精髓:人类的非理性面影响经济决策,这些有可能是金融危机的根源。 2019-04-26
《赢家的诅咒》书中的精髓:人性的复杂让主流经济学出现了诸多失灵,如何用更多理论完善经济学大厦是经济学家的重要使命 2019-04-26
《巴菲特法则》书中的精髓:用好巴菲特企业前景投资法则,股票投资稳赚不赔。 2019-04-26
《战胜华尔街》书中的精髓:业余投资者如何根据行业特点选好股票,赚得比专业的投资者还要多? 2019-04-26
《巴菲特的估值逻辑》书中的精髓:在投资过程中不断总结经验,不断提升投资能力,不断探索、加深对好公司的理解,成就了巴菲特的投资神话。 2019-04-26
《股市稳赚》书中的精髓:用简单的神奇公式进行股票投资,获得稳定而持久的收益。 2019-04-26
《曾国藩的经济课》书中的精髓:我们如何像曾国藩一样,在遇到道德和环境冲突时,既能保持自己的道德,又能调动资源,帮助自己成事。 2019-04-26
《富人的逻辑》书中的精髓:为什么暴富起来的人会在短期内失去财富,我们又该如何去创造财富和持续拥有财富。 2019-04-26
作文提升~老师整理的优美比喻句太实用 2019-04-26
作文提升~老师整理的优美拟人句太实用 2019-04-26
作文提升~老师整理的优美排比句太实用 2019-04-26
作文提升~老师整理的夸张句,太实用了,赶快收藏 2019-04-26
作文提升~写景常用的拟人句,很经典 2019-04-26
小学教师资格考试科目一思维导图-教育观、教师观和学生观 2019-04-26
小学教师资格考试科目一思维导图-职业道德 2019-04-26
小学教师资格考试科目一思维导图-逻辑思维能力、阅读理解、写作能力 2019-04-26
什么是劳动型创业者?什么叫做社会平均利润? 2019-04-26
什么是中奖型创业者? 2019-04-26