温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

主键和外键啥关系

发布时间:2026-09-03 02:23:26 来源:亿速云 阅读:97 作者:小樊 栏目:数据库

关系型数据库(如 MySQL、PostgreSQL、SQL Server 等)里,**主键(Primary Key)外键(Foreign Key)**是用来保证数据完整性和建立表之间关系的两个核心概念。


一、什么是主键(Primary Key)

  • 作用:唯一标识表中的每一行记录
  • 特点
    • 唯一
    • 不能为 NULL
    • 一个表只能有一个主键(可以是单列,也可以是多列组合)

例子

CREATE TABLE student (
    id INT PRIMARY KEY,
    name VARCHAR(50)
);

这里 id 就是主键,用来唯一确定每个学生。


二、什么是外键(Foreign Key)

  • 作用:建立两张表之间的关联
  • 本质:外键是指向另一张表的主键(或唯一键)
  • 特点
    • 外键值必须是被引用表中存在的值(或 NULL)
    • 用来保证“引用完整性”

例子

CREATE TABLE score (
    id INT PRIMARY KEY,
    student_id INT,
    score INT,
    FOREIGN KEY (student_id) REFERENCES student(id)
);

这里:

  • score.student_id外键
  • 它引用了 student.id(主键)

三、主键和外键的关系(重点)

外键依赖主键存在
→ 没有主键(或唯一键),一般无法建外键

一对多关系靠它们实现
→ 一表主键 = 多表外键
例如:

  • 一个学生 → 多个成绩
  • student(主键 id) ↔ score(外键 student_id)

删除/更新时有约束

  • 如果学生被成绩表引用,直接删学生可能失败
  • 可通过 ON DELETE CASCADE 等规则控制

四、一句话总结

主键用来“我是谁”,外键用来“我属于谁”。

如果你愿意,我也可以用或**真实业务例子(订单/用户)**再讲一遍。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI