JavaRush /Java 博客 /Random-ZH /我们分析数据库和 SQL 语言 - “Java 项目从 A 到 Z”
Roman Beekeeper
第 35 级

我们分析数据库和 SQL 语言 - “Java 项目从 A 到 Z”

已在 Random-ZH 群组中发布
有关创建 Java 项目的系列文章中的一篇。其目标是分析关键技术,结果是编写一个电报机器人。介绍部分就在这里 阿罗哈,软件工程师。今天我们谈论数据库和SQL语言。“Java 项目从头到尾”:分析数据库和 SQL 语言 - 1这篇文章的目标读者是谁?对所有感兴趣的人来说是的。有些人可以从这篇文章开始他们的旅程,其他人将能够刷新他们对有趣事实的记忆。这部分纯粹是理论性的。在我们告诉您什么是数据库和 SQL 语法之前,我们需要理解并确定为什么要研究它们。在此阶段,我们将讨论SQL 数据库:在本系列文章中我们不会考虑 NoSQL。

数据库:它是什么

“Java 项目从头到尾”:分析数据库和 SQL 语言 - 2数据库(以下简称DB)是存储结构化数据的地方,可以使用查询语言获得结构化数据。数据库不仅可以存储、还可以处理和更改大量信息。注意:尝试根据某些条件快速更改 Excel 中的一组值。原则上,没什么复杂的。不像我们非数字化的现实世界。例如,重命名车道、街道、城市。如果一切都是虚拟的并输入数据库,它将被标准化,这将是一些小事。事实上,许多存储介质都因无法自动更改而受到影响。在这种情况下,数据库的 SQL 是一种数据库可以理解并做出相应响应的语言。比方说,重命名这座城市并不困难;将第聂伯罗彼得罗夫斯克重命名为第聂伯罗会看起来像这样:
UPDATE city SET name = “Днипро” WHERE id = 1231;
对系统的所有后续请求都已经生成了我们需要的名称。

为什么需要数据库?

正如我已经说过的,使用数据库可以存储数据。但这个数据是什么?为了理解现实生活中的例子,我们可以讨论一些应用程序。例如,关于同一个电报机器人。我们想知道有多少人在使用该机器人。如何实施?在常规 Java 应用程序中,您可以创建许多独特的元素 - Set,它将存储用户的昵称或聊天 ID。这行得通吗?将要。直到 Java 应用程序停止,并且一旦再次启动,唯一元素集将为空。也就是说,存储在正在运行的应用程序中的数据就消失了。你能为这个做什么?您可以将系统状态(数据)的存储从 Java 应用程序移至其他位置。您可以将其以 CSV 格式存储在计算机上的常规文件中。您可以在单独文件中的一行中完成此操作。您可以执行此操作,然后在 Java 应用程序停止之前覆盖此数据。虽然录制成功的保证远没有达到100%,因为你只要拔掉服务器的电源线就不会发生录制。这种方法有一个显着的缺点:没有在文件级别获取、聚合和搜索信息的功能。是的,当然,您可以读取文件并为其创建对象,但您必须每次都将所有数据注入应用程序。而且可能有很多,例如几千兆字节。通过将数据存储在数据库中可以避免这种情况。如何?通过表和它们之间的关系。这是所有关系数据库的基础。

SQL:数据库理解的语言

有数据库管理系统(以下简称DBMS),它们理解的语言是SQL。SQL 是一种用于操作和管理数据库的编程语言。为了理解它是如何工作的,让我们看一下图:“Java 项目从头到尾”:分析数据库和 SQL 语言 - 3用户向 DBMS 发送 SQL 查询,DBMS 理解需要做什么,然后执行它,如果请求是获取数据,则返回它。因此,作为开发人员,我们需要掌握SQL查询语言。你可能会想,“哦,另一种语言。感谢上帝的帮助,我在这里几乎不懂 Java,而你们立即为我提供了另一种语言。” 这是不正确的:SQL 是作为 DBMS 的规范语言而发明的,以便远离数据库和一般编程的会计师可以使用这种语言进行编写。这意味着学习它不会那么困难。最重要的是练习-练习-练习。今天是理论,下一篇是实践。由于关系数据库是一组二维数组表以及它们之间的关系,因此工作将围绕它们进行。如果我们谈论一个例子,我们可以显示两个表 - “国家”和“城市”以及它们如何连接。“Java 项目从头到尾”:分析数据库和 SQL 语言 - 4在这个阶段,我们必须了解表中的记录是有关 Java 世界中某个对象的数据。例如,这两个表在Java中可以这样描述:
public class Country {
   private Long id;
   private String name;
}

public class City {

   private Long id;
   private String name;
   private Country country;
   private Integer population;
}
嗯,不是很漂亮吗?数据库可以存储任意数量的表。在我们的例子中,有两个。

表结构

我认为每个人都以某种方式接触过 Excel 表格,并且您了解术语“行”“列”。在数据库的上下文中,我们更多地讨论记录和字段:“Java 项目从头到尾”:分析数据库和 SQL 语言 - 5因此,事实证明,City 类的每个对象都是数据库表中的一条记录。

首要的关键

“Java 项目从头到尾”:分析数据库和 SQL 语言 - 6数据库中的字段经常具有相同的值。例如,在社交网络中,可以通过姓名甚至父名找到多个人。关系数据库需要一个可用于访问记录的唯一字段。这称为第一个键或主键。通常,ID(id) 字段用作这样的键 - 这是标识符的缩写。这就是为什么您需要为每个表添加一个ID字段。“Java 项目从头到尾”:分析数据库和 SQL 语言 - 7

外键

在我们的示例中,此类字段位于 City 表中,该表使用 Country 中的键。它的工作原理是这样的:每个城市都知道其国家/地区的唯一信息标识符,如果我们使用它并在数据库中创建查询,我们将收到有关该国家/地区的全面信息。如图所示,两个表之间存在关系:“Java 项目从头到尾”:分析数据库和 SQL 语言 - 8这里展示了外键的原理。

SQL中有哪些部分?

顺便说一下,面试时经常被问到 SQL 中有哪些操作:
  • DDL(数据定义语言)是一组更改/创建表及其结构等的运算符。即创建表、删除表、创建/删除表中的字段;创建新的主键等等;
  • DML(数据操作语言)是一组管理数据修改的操作符。这些都是更改数据库中数据的操作:添加、获取、更改和删除;
  • DCL(数据控制语言)是一种确认用户执行操作的权限的手段。向特定用户提供访问和权限的操作,以便他可以执行 DDL/DML 操作。

SQL中有哪些数据类型

表可以存储和处理某些类型的数据。这里的一切都与我们在 Java 中使用的类似。我们来谈谈主要的吧。只有三个,我们将根据需要和/或期望添加其他:“Java 项目从头到尾”:分析数据库和 SQL 语言 - 9从图片中可以看出,它们是:
  • INT - 整数值。用于唯一标识符和简单整数;
  • VARCHAR是我们的字符串
  • DATE是我们的本地日期。
到目前为止一切都很简单,对吧?字段类型是在创建表时指定的。显然,不可能将不同类型的值写入该字段。

什么是 SQL 运算符

运算符是执行某些操作的单独命令。运算符由句子组成,而句子又由查询中使用的关键字组成。让我们看一个例子:“Java 项目从头到尾”:分析数据库和 SQL 语言 - 10这里更有趣,这里已经构建了一个查询。他们在那里做什么?很简单,它说:“从 Clients 表中获取三个字段(Name、Age 和 CreatedDate),仅选择 name 等于 Roman 的记录。”

结论

在这篇文章中我们开始学习数据库。我们了解它是什么以及为什么我们需要它。接下来,我们回顾了 SQL 的最初迹象,我们将在下一篇文章中更详细地讨论这些迹象。像往常一样,我建议在 GitHub 上注册并关注我的帐户,以关注本系列以及我在那里从事的其他项目。

家庭作业

为了增加JRTB系列文章的兴趣,我们会不时布置家庭作业。例如,如果没有今天的作业,下一篇文章会更难理解,因为那里会有很多练习。因此,任务是在计算机上安装 MySQL DBMS 并通过控制台或其他解决方案登录数据库。感谢大家的阅读,我们很快再见!

该系列所有材料的列表位于本文开头。

评论
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION