表、行、列和键如何协同工作以创建数据库。

如果您要开始使用 Metabase,了解一些关键的数据库术语会很有帮助。

从根本上说,数据库由一个或多个 组成。表包含一个或多个 ,一个或多个 。行由单元格 组成,每个单元格都有一个与其所属的列相对应的 值 。
下面是一个表的示例:

Name Age
张三 25
李四 31

在这里,NameAge。第一行包含两个单元格,一个值是张三,另一个值是25,分别对应于 Name 和 Age 列。

一列中的所有单元格都包含相同类型的信息。例如,在上面的示例表中,Name列包含每个单元格中的姓名,而Age列列出了年龄。
每个字段都有一个类型,它描述了字段中存储了什么样的数据。

列与字段

关于字段的注释,因为这些术语可以互换使用:

  • 字段是用于存储数据的元素(例如,PRODUCT_ID字段存储产品的标识码)。
  • 列是值的列表,并且通常是来自单个字段的值的列表(例如,PRODUCT_ID列存储来自该PRODUCT_ID字段的值)。但是,一列也可以是来自多个字段的值列表。例如,列可能包含来自计算两个不同字段的值差异的表达式的值:TOTAL_WITH_DISCOUNT例如,列可以从字段中获取值并从DISCOUNT字段中的值中减去它们SUBTOTAL,并列出差异。

在 Metabase(和其他地方)中,您经常会看到这两个术语可以互换使用,因为在大多数情况下,列指的是来自单个字段的数据。

主键

主键是表中唯一标识每一行的字段。例如,想象一个汽车预订应用程序,您可以在其中提前预订汽车。预留的 ID 可以是预留号,没有两个预留共享同一个预留号,允许每个预留由其预留号唯一标识。
例子
Reservations(预订)表

Reservation ID Name Age
11 John 25
12 Jenny 31

在上表中,Reservation ID字段是 ID(主键)。

表之间的关系

表可以包含对其他表的引用,从而建立它们之间的关系。
在我们假设的汽车预订应用程序的数据库中,我们可以有两张表:一张用于预订(我们称之为Reservations)和一张用于客户(我们将其称为Customers)。
要将预订数据连接到相应的客户数据,您可以使用外键。外键是表中的一种特殊字段,它引用不同表中的相同列。几乎总是,外键指向的字段是另一个表中的ID主键
使用相同的示例,我们可以将 Reservations 表中的每个预订连接到进行预订的相应客户,方法是让预订Customer列包含与进行预订的客户列相同的值ID
虽然主键和外键之间的内置关系使数据库用户更容易,但大多数数据库都允许您创建一个加入即使没有键关系,也可以在两个表之间。查看我们的不同指南SQL 连接的类型如何在元数据库中使用连接.
Reservations(预订)

Customer Date Car
11 12/20/2015 Toyota Camry
12 1/2/2016 Range Rover

Customers(顾客)

ID Name Age
11 John 25
12 Jenny 31

如果我们想使用 Metabase 分析我们假设的应用程序的数据库,我们可以提出一个问题,例如:在 2015 年 12 月进行预订的所有客户的平均年龄是多少?
为此,我们将打开 Reservation 表,添加一个过滤器以仅查看 2015 年 12 月 1 日至 12 月 31 日之间的预订,然后选择Average of…。为了具体选择 Age 的平均值,我们现在使用外键并从我们的 Reservations 表引用的Customers表中选择 Age。

Next: 数据类型

现在我们对数据库有了基本的了解,让我们进一步了解数据类型.