Logo
Section 1 / 4

表、模式、列和键

了解数据库组件,例如数据库表、模式以及主键和外键。

导入

表、模式、列和键

了解数据库组件,例如数据库表、模式以及主键和外键。

数据库表

现在我们已经了解了数据库在现实世界中的应用以及掌握 SQL 知识的好处,接下来将深入探讨数据库的组成部分。

我们可以将数据库的各个组成部分称为对象。这些对象包括表、列、索引和触发器等。本质上,它们都是构成数据库数据拼图的重要部分。

在数据库中,表用于存储数据本身。一个表由列组成,这些列是表的标题,例如“FirstName”(名字)和“LastName”(姓氏)。

数据在单元格中显示,比如某人的实际名字和姓氏。某些单元格可能没有数据,这在数据库中被称为 NULL。这意味着该单元格中没有任何数据。

注意: 在 Microsoft SQL Server 中,一张表最多可以有 1,024 列,但行数没有限制。

模式

模式可被视为表的逻辑容器。它本质上是一种按数据类型对表进行分组的方式。对于使用数据库的终端用户(如运行报表的人)来说,模式的存在不会产生影响。然而,直接操作数据库的用户(如数据库管理员或开发人员)会看到可用的模式。

举个实际例子:假设有多个包含销售记录的表,例如“Sales Order”(销售订单)、“Sales History”(销售历史)或“Sales Customer”(销售客户)。我们可以将这些销售相关的表都放入一个名为“Sales”的模式中,以便在直接操作数据库时更清晰地识别它们。

列

如前所述,列是表中的一个标题,由数据类型定义。数据类型规定了该特定单元格中可以存储的数据类型,即行与列交汇处的数据。表格中被高亮的每一行代表一列。

表中的列

BusinessEntityIDTitleFirstNameMiddleNameLastNameSuffix
11NULLDylanAMillerNULL
22NULLDianeLMargheimNULL
33NULLGigiNMathewNULL
44NULLMichaelNULLRaheemNULL

行与 NULL 值

行是表中的一条记录。一行通常横跨整个表,并在每个列中包含数据。有时,某个或多个单元格中可能包含“NULL”值。

回到我们的例子:大多数人有名字和姓氏,但并非所有人都有中间名。在这种情况下,某一行在名字和姓氏列中有值,但在中间名列中为 NULL,如下表所示:

单元格中的 NULL 值

BusinessEntityIDTitleFirstNameMiddleNameLastNameSuffix
11NULLKennASanchezNULL
22NULLTerriLDuffyNULL
33NULLRobertoNULLTumburelloNULL
44NULLRobNULLWaltersNULL
55Ms.GailAEricksonNULL

主键

主键是应用于某一列的约束,强制该列的所有值必须唯一且非空。

对列中值的唯一性要求有助于维护数据完整性,防止未来出现数据问题。

一个真实的主键示例是员工编号或销售记录编号。我们不希望两个不同的人拥有相同的员工编号,也不希望不同的销售交易拥有相同的销售记录编号,否则在存储和检索数据时会造成困难。

从下面的例子可以看出,“BusinessEntityID”列中的每个值对每个人来说都是唯一的。

表中的主键

BusinessEntityIDTitleFirstNameMiddleNameLastNameSuffix
11NULLCarolMPhilipNULL
22NULLMeravANetzNULL
33NULLReubanHD'saNULL
44NULLEricLBrownNULL
55NULLSandeepPKaliyathNULL
66NULLMihailUFrintuNULL

外键

外键是连接两个表的纽带。外键允许重复值和 NULL 值。在下面的第一个表 “Sales.SalesOrderDetail” 中,“ProductID” 就是外键。

“SalesOrderDetail” 表中的 “ProductID” 与 “Production.Product” 表中的 “ProductID”(主键)之间存在关联,如下图所示:

简介

约束与视图