主键和外键的定义
时间: 2025-06-08 22:47:14 浏览: 25
### 主键和外键的定义及作用
#### 主键 (Primary Key)
主键是指在数据库表中用来唯一标识每一条记录的一个或一组字段。它的主要特性包括不可为空(NOT NULL)以及值的唯一性。通过主键,可以确保表内的每一行数据都是独一无二的,从而避免重复数据的存在[^3]。
例如,在学生表 `(学号, 姓名, 性别, 班级)` 中,“学号”由于其唯一性和不变性的特点适合作为主键,因为即使其他字段如姓名可能重复,但每个学生的学号一定是唯一的[^4]。
```sql
CREATE TABLE Students (
StudentID INT PRIMARY KEY,
Name VARCHAR(100),
Gender CHAR(1),
Class VARCHAR(50)
);
```
#### 外键 (Foreign Key)
外键是一张表中的一个或多个字段,这些字段引用另一张表的主键。外键的主要功能在于建立并维护两张或多张表之间的关联关系,以此来保障数据的参照完整性。具体来说,外键的值要么必须与它所引用的那个主键表中的某个主键值一致,或者它可以取 `NULL` 值(前提是允许空值的情况)[^1]。
继续以上述例子为基础,假设有一个成绩表 `(StudentID, CourseID, Score)` ,其中 “StudentID” 是对学生表的引用。“CourseID” 则是对课程表的引用。这两个字段都可视为各自对应表格的外键[^4]。
```sql
CREATE TABLE Scores (
StudentID INT,
CourseID INT,
Score DECIMAL(5, 2),
FOREIGN KEY (StudentID) REFERENCES Students(StudentID),
FOREIGN KEY (CourseID) REFERENCES Courses(CourseID)
);
```
#### 定义总结
- **主键**: 表内用于唯一识别各条目的字段集合;具有非空且唯一的特点。
- **外键**: 连接两表间联系的关键字,需满足特定约束条件以维持跨表间的逻辑一致性。
#### 功能与意义
两者共同促进了数据库内部的数据完整性和高效检索能力。一方面,主键杜绝了冗余信息的发生;另一方面,借助于外键机制实现了复杂业务场景下多实体之间相互依赖的关系表达[^2]。
阅读全文
相关推荐



















