天天看点

《SQL初学者指南(第2版)》——1.3 关系型数据库

本节书摘来自异步社区出版社《sql初学者指南(第2版)》一书中的第1章,第1.3节,作者:【美】larry rockoff,更多章节内容可以访问云栖社区“异步社区”公众号查看。

介绍完了这些预备知识,我们来了解一下关系型数据库的基础知识以及它们是如何工作的。关系型数据库就是一个数据集合,它保存了任意多个表。在常见的用法中,术语“关系(relational)”用来表示各个表以某种形式彼此相互关联。然而,更准确地讲,关系指的是数学关系理论,并且和一些逻辑属性相关,而这些逻辑属性负责管理表之间相关的方式。

例如,我们来看数据库的一个简单示例,它只有两个表:customers表和orders表。customers表为每位下订单的客户保存一条记录。orders表针对每个订单保存一条记录。每个表都可以包含任意多个字段,字段用来存储与每条记录相关的不同属性。例如,customers表可以保存诸如firstname和lastname这样的字段。

这时,可视化一些表和表中所包含的数据是很有用的。通常习惯是,把表显示为由行和列组成的一个表格。每一行表示表中的一条记录,每一列表示表中的一个字段。表的顶行通常是字段名。剩余的其他行则显示实际的数据。

在sql术语中,记录(record)和字段(field)实际上就称为行(row)和列(column),这和视觉上的展示是对应的。因此,今后我们使用术语“行”和“列”来说明关系型数据库中表的设计,而不再使用记录和字段。

我们来看关系型数据库中一个可能的、最简单的示例。在这个数据库中,只有两个表,分别是customers表和orders表。这两个表看上去如下所示。

《SQL初学者指南(第2版)》——1.3 关系型数据库

在这个示例中,customers表包含了3个列:customerid、firstname和lastname。目前,表中有3行,分别表示bob davis、natalie lopez和connie king。每一行表示一个不同的客户,每一列表示该客户的一段不同的信息。与之类似,orders表有4行和3列。这表示数据库中有4笔订单,每笔订单有3种属性。

当然,这个示例非常简单,并且只是提示了哪些数据类型可以存储到一个真实的数据库中。例如,customers表通常会包含描述客户的其他属性的许多附加的列,诸如city、state、zip和phone number。同理,orders表一般也会有一些描述订单的其他属性的列,诸如order date、sales tax以及接受该订单的salesperson。