6 关系模型之2.3 主键与外键
在前一节中,我们讨论了表的结构与数据类型。接下来,我们将探讨关系模型中的两个重要概念:主键
和外键
。这两个概念在确保数据一致性和完整性方面起着至关重要的作用,能够有效地管理表与表之间的关系。
1. 主键
1.1 概念
主键
(Primary Key)是用来唯一标识表中每一行数据的一个或多个字段。每个表只能有一个主键,主键的值不能为空,且必须具有唯一性。
1.2 作用
- 唯一性:确保表中每条记录都是唯一的。
- 完整性:通过主键,可以确保不会出现重复的数据记录。
1.3 定义主键的示例
以下是创建一个简单学生
表的示例,定义学号
为主键:
1 | CREATE TABLE 学生 ( |
在这个示例中,学号
字段被定义为主键,意味着每个学生的学号都必须是唯一且不能为空。
2. 外键
2.1 概念
外键
(Foreign Key)是一种约束,用于实现表与表之间的关联。它是一个表中的字段,引用另外一个表的主键。外键的值可以为null,且其值不一定要求唯一。
2.2 作用
- 维护数据的完整性:通过设置外键,可以确保引用的数据存在,防止出现”孤立”的数据。
- 建立关系:外键用来在不同的表之间建立联系,方便进行复杂的数据查询。
2.3 定义外键的示例
假设我们有一个课程
表,记录学生所选的课程,我们可以这样定义外键:
1 | CREATE TABLE 课程 ( |
在这段代码中,选课
表中的学号
和课程ID
字段分别是引用学生
表中的学号
和课程
表中的课程ID
的外键。这意味着只有存在的学号和课程ID才可以被插入到选课
表中,从而确保数据之间的完整性。
3. 示例:插入数据并验证外键约束
1 | -- 插入学生数据 |
在上述代码中,前两条插入操作都成功执行,因为它们插入的是已存在的学号
和课程ID
。最后一条插入操作由于试图插入一个不存在的学号,从而触发外键约束失败,确保数据库的完整性和一致性。
4. 结论
通过使用主键
和外键
,我们能够有效地管理和维护数据库中的数据。这两种约束不仅可以确保数据的完整性,还能够增强数据之间的关联性,为复杂查询提供支持。下一节中,我们将继续深入学习SQL
语言的基础知识,这将使我们能够更有效地与关系数据库进行交互。
6 关系模型之2.3 主键与外键