本文共 954 字,大约阅读时间需要 3 分钟。
本节书摘来自异步社区出版社《SQL初学者指南》一书中的第1章,第1.6节,作者: 【美】Larry Rockoff,更多章节内容可以访问云栖社区“异步社区”公众号查看。
SQL初学者指南
请留意每个表的第一列:即Customers表中的CustomerID和Orders表中的OrderID。这些列通常称为主键(primary key)。主键之所以有用和有必要,有两个原因。首先,它们使你能唯一地标识表中一个单独的行。例如,如果想要查找William Smith这一行,我们可以只使用CustomerID列来获取数据。主键还确保了唯一性。当指定CustomerID列作为主键时,就保证了表中的该列针对每一行都拥有一个唯一的值。即使在数据库中,有两个不同的人都叫William Smith,这两行的CustomersID列的值也会不同。在这个示例中,主键列的值没有任何特殊含义。在Customers表中,CustomerID列在表的3行中的值分别为1、2和3。通常情况下,我们会以这样的一种方式来设计数据库的表:当表中增加新的行时,主键列会自动生成顺序的编号。通常,我们把这种设计特性叫做自增型(auto-increment)。
使用主键的第2个原因是,可以很容易地把一个表和另一个表进行关联。在这个例子中,Orders表中的CustomerID列,指向了Customers表中对应的一行。查看一下Orders表的第4行,会发现其CustomerID列的值是3。这就意味着,CustomerID为3的客户下了这个订单,这位客户名为Brenda Harper。在表之间使用共同的列,这是关系型数据库中一项基本的设计要素。
除了可以指向Customers表,还可以把Orders表中的CustomerID列指定为外键(foreign key)。我会在第18章中详细地介绍外键,这里只需要知道,定义外键是要确保这一列有一个有效的值。例如,我们希望Orders表中的CustomerID列的值,必须是Customer表中真正存在的一个CustomerID值。指定一列作为外键,就可以实现这种限制。
本文仅用于学习和交流目的,不代表异步社区观点。非商业转载请注明作译者、出处,并保留本文的原始链接。