JavaRush /Java 博客 /Random-ZH /《SQL. 安东尼·莫利纳罗(Anthony Molinaro)的食谱集

《SQL. 安东尼·莫利纳罗(Anthony Molinaro)的食谱集

已在 Random-ZH 群组中发布
大家好。有志向、想成为Java开发者的人们聚集在这里。这是合乎逻辑的:JavaRush 就是为此而创建的。要成为一名成熟的开发人员,您需要了解一定的主题列表。我在本文中描述了 Java 开发人员所需知识的完整清单。《SQL.  安东尼·莫利纳罗 (Anthony Molinaro) 的食谱集 - 1因此:此列表中的必需主题之一是 SQL 语言知识并熟悉至少一种关系数据库。好消息是,您只需要一本书就可以将 SQL 学习到足以满足 Java 开发人员的水平!有很多适合初步深入了解 SQL 的书籍可供选择,但今天我想重点关注“SQL. 安东尼·莫利纳罗(Anthony Molinaro)的《食谱集》。《SQL.  食谱集”安东尼·莫利纳罗 - 2本书的独特之处在于,除了基础级别的 SQL 学习之外,您还将同时熟悉多个数据库,并了解它们的查询有何不同以及特定数据库的功能是什么。本书涵盖了以下数据库的查询:
  • DB2;
  • 甲骨文数据库;
  • PostgreSQL;
  • SQL服务器;
  • MySQL。

这本书是为谁而写的?

  • 初学者开发者

首先,本书对于 Java 等新手开发人员很有用。您必须在基本层面上处理各种关系数据库,因此本书将帮助您获得必要的 SQL 知识。

  • 经验丰富的开发人员

您可能已经非常熟悉构建 SQL 查询,但这本书仍然会给您带来惊喜并补充您的知识。或者,例如,您转移到一个包含您不熟悉的关系数据库的项目。然后,在本书的帮助下,您将能够将熟悉数据库的查询与新数据库的查询进行类比。

  • 初级 SQL 开发人员

您可能只是想成为一名数据库开发人员。那么这本书非常适合您!您将能够学习针对各种数据库进行讨论的 SQL 基础知识,并选择“您的”数据库,您将在将来更详细地学习该数据库。

这本书是关于什么的

本书逐章涵盖了基本的 SQL 主题以及各种 SQL 问题及其解决方案。因此,它可以作为参考:问题出现了,你正在寻找合适的方法来解决它,然后你正在创建适合当前情况的解决方案。这本书包含 150 多个食谱。是的,正是构建 SQL 查询的秘诀:这就是这本书有这个名字的原因。《SQL.  食谱集”安东尼·莫利纳罗 - 3读完这本书后该怎么办?
  1. 不要害怕尝试,因为只有通过尝试和错误,你才能获得如此宝贵的经验,所以练习,练习,再练习!
  2. 测试一下。我的意思是,在阅读本书时,最好尝试并行给出的查询示例,这样,您就会牢牢记住这些示例。
  3. 重复是学习之母。因此,建议引入一个注释,您可以在其中记下要点并定期重复,这样以后编写查询不会给您带来任何问题。
  4. 您需要了解新并不总是意味着更好。仅仅因为您没有使用某些最新的 SQL 功能(例如窗口函数)并不意味着您的代码无效。毕竟,有很多例子表明传统 SQL 解决方案并不比新解决方案更差,有时甚至更好。
  5. 不要害怕尝试。让你的工作充满创意!毕竟,所有解决方案尚未发明:也许在您的情况下,创造性的方法将是最好的。
《SQL.  食谱集”安东尼·莫利纳罗 - 4现在我们来简单回顾一下这本书的内容:

1. 提取记录

本章研究第一个、最简单的查询。在示例中您将看到:
  • 如何使用WHERE子句将行选择到公共结果集中;
  • 如何为结果列分配别名;
  • 如何使用子查询通过别名访问列;
  • 如何限制结果行中返回的数量;
  • 如何返回随机字符串并检测 NULL 值。
一般来说,这些示例非常简单,但同时有些示例甚至会让经验丰富的开发人员感到惊讶。

2、查询结果排序

本章讨论对查询结果进行排序。实际上,ORDER BY运算符就是用于此目的的。您将看到不同复杂性的示例,范围从简单地对单个列进行排序,到按子字符串排序,再到使用各种条件进行排序。

3. 使用多个表

本书的这一部分介绍了组合多个表中的数据的方法。如果我说表连接是 SQL 的基本支柱之一,我不会说谎,并且要成功使用 SQL,您需要获取这些知识并能够使用它。在这里,您将看到内连接和外连接、笛卡尔积、基本集合运算(减法、并集、交集)以及连接如何影响聚合函数的示例。

4.插入、更新、删除

在本节中,您将学习用于插入、更新和删除数据的 SQL 查询。还讨论了更有趣的示例 - 诸如将行从一个表插入另一个表或在更新期间使用相关子查询等操作。您将了解 NULL 值的后果,了解多表插入、MERGE 命令等。

5. 元数据请求

本章讨论构建查询来访问您正在使用的数据库的元数据:了解索引、约束和模式表很有用。此处建议的简单查询允许您获取有关架构本身的信息。另外,本章还展示了“动态SQL”的示例,即由SQL生成的SQL。

6. 使用字符串

本章介绍使用字符串的技术。SQL 从来不以其字符串解析功能而闻名,但是一点点创造力与各种数据库提供的广泛功能相结合就可以在这件事上取得相当大的成功。事实上,这一章才是有趣的开始。有些例子会让你大吃一惊。例如:
  • 计算字符串中字符的实例;
  • 将分隔列表和字符串转换为表行;
  • 从表行创建分隔列表;
  • 分隔由字母数字字符组成的字符串的数字和字符数据。

7. 处理数字

本书的这一部分将探讨解决标准数字问题的方法。在这里您可以找到常见示例并了解窗口函数如何轻松处理计算和聚合任务。你将学习:
  • 计算当前金额;
  • 求均值、中位数和众数;
  • 计算百分位数;
  • 执行聚合时处理NULL值。

8-9。日期算术

在这两章中,您将学习如何使用日期,因为在解决日常问题时,能够使用它们执行最简单和最常见的操作非常重要。各种示例包括查找两个日期之间的工作日数、计算不同时间单位的两个日期之间的差异、返回一年中的所有天、查找闰年、查找一个月的第一天和最后一天、创建日历等。读完这些章节后,任何与日期相关的任务都很难吓到你(但你可以吓到你)。

10. 使用数据范围*

本章介绍搜索日期范围内已有值的方法。您将学习如何自动生成字符串序列、插入缺失的数值范围值、确定值范围的开始和结束以及识别值序列。

11. 高级搜索*

在这里,您会发现对于数据库的日常工作至关重要的功能,但有时会带来困难。本章中的示例包括使用骑士移动搜索值、将结果集拆分为页面、跳过表行、搜索倒数值等。

12. 报告和数据仓库管理**

通常我们可能需要特殊查询来生成报告。本章将帮助我们做到这一点:在这里您将看到将行转换为列的示例,反之亦然(交叉引用报告),创建数据组,创建直方图,计算简单和完整的子和,聚合行的滑动窗口,并按给定时间间隔对行进行分组。

13. 分层查询**

本章将告诉我们使用分层数据的可能性。无论数据模型如何,有一天都需要将其格式化为层次结构树或父->子关系。因此,在本章中您将分析这方面的问题和解决方案。使用传统 SQL 创建树形结构结果集很困难,因此本教程将向您展示如何使用一些极其有用的特殊函数。在示例中,您将详细了解父->子关系,从根节点到叶节点遍历层次结构,并累积层次结构。

14. 东西

最后,您将看到所有不适合前面任何章节的剩余功能,但同时它们也同样有趣和有用。本章与其他章节的不同之处还在于它仅提供针对特定 DBMS 的解决方案。这是本书中唯一一章每个菜谱只讨论一个数据库。这样做是为了展示特定 DBMS 的功能和特性(以便您可以更好地感受到它们之间的差异)。 本书优点:
  1. 很多例子。
  2. 非常适合“初级”潜水。
  3. 考虑了各种 DBMS 的示例。
  4. 有一个很好的翻译。
缺点: 不考虑更复杂、具体、罕见的任务/问题。

类似书籍

  1. “Learning SQL” - Alan Bewley:也是一本初步深入了解 SQL 并考虑各种 DBMS 的书,但它特别强调 MySQL。这本书的缺点是对新信息的“咀嚼”不够。
  2. “SQL:语言学习指南” - Chris Faily:这本书还涵盖了各种数据库的基础知识。非常适合初学者,但如果您已经熟悉 SQL 并且需要了解更多细节,您可能需要看看其他地方。
  3. “Head First - Learning SQL” - Lynn Bailey:一本入门门槛非常低的书,它将以易于理解和详细的方式传达许多基本要点(有时甚至过于简单)。在示例中,本书考虑的不是多个数据库(如上面的类似数据库),而是一个数据库 - MySQL。

底线

如果你立志成为一名Java开发人员,那么你就不能不学习SQL。但幸运的是,我们不需要像数据库开发人员那样了解它,而且所需的知识量原则上只需一本关于 SQL 的书就可以涵盖。今天复习的书是《SQL. 食谱集”或所提供的类似物之一可能非常适合您。好吧,到底要读什么(或不读什么)是你的选择)) PS要获得编写 SQL 来解决各种问题的实践,您可以使用此网站PSS这里您可以熟悉有关数据库的常见问题,最好是在阅读本书之后。
评论
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION