news 2026/5/1 8:01:14

Java进阶 主键和外键的使用区别

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Java进阶 主键和外键的使用区别
文章目录
    • Java进阶 主键和外键的使用区别
        • 一、主外键定义
        • 二、主外键用法&意义
        • 三、如何创建外键

Java进阶 主键和外键的使用区别

一、主外键定义

主键,primary key:是被挑选出来,作表的惟一标识的候选关键字,一个表只有一个主键。比如,一条记录包括身份正号,姓名,年龄。身份证号是唯一能确定你这个人的,其他都可能有重复,所以,身份证号是主键。注意,主键可以是一个字段,也可以是多个字段组合成的多字段联合主键,看下面这个例子:

#将name和deptId字段组合成为表temp的多字段组合主键 CREATE TABLE temp ( name VARCHAR(32), deptId INT, salary FLOAT, PRIMARY KEY(name,deptId) )

外键:外键用于与另一张表的关联。是能确定另一张表记录的字段,用于保持数据的一致性。比如,A表中的一个字段,是B表的主键,那他就可以是A表的外键。

二、主外键用法&意义

在以后我们统一将外部关键字叫做外键,外键就是另一张表中的主键

问:外键有啥用啊?
答:外键的主要作用就是保持数据的一致性,完整性。

再问:怎么保证的呢?
答:看下图。

表 S t u d e n t : extcolor{RedOrange}{表Student:} 表Student:

stuId

name

classId

1

张三

1

2

李四

2

表 C l a s s : extcolor{RedOrange}{表Class:} 表Class:

calssId

className

1

计算机1班

2

计算机2班

看上图有两张表,classIdStudent的外键,是Class表的主键, 如果我们要删除Class表中classId1的字段,程序是会报错的,因为Student表中有数据和classId1的字段关联了,是不能删除的,这样子就保证了数据的一致性和完整性

继续问: 那怎么才能删除呢?
答: 需要先删除Student表中classId为1的两个字段。

三、如何创建外键

在MySQL中给表中字段添加外键约束的语法规则如下:

CONSTRAINT 外键名 FOREIGN KEY 字段名 REFERENCES 主表名(主键名)

举个例子,现在有两张表,一张学生表,一张班级表,内容看上面的表:

CREATE TABLE student ( stuId INT PRIMARY KEY, name VARCHAR(22), classId INT, CONSTRAINT student_class_id FOREIGN KEY(classId) REFERENCES class(classId) ); CREATE TABLE class ( classId INT PRIMARY KEY, className VARCHAR(22) );
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/1 7:07:48

JAVA进阶 THREAD学习12 多线程小结

多线程安全问题的应对 首先有前面的分析得出多线程的安全问题是由共享资源的修改混乱导致的。 那么我们根据这两个关键的点做出应对: 避开使用共享资源 使用没有共享资源的模型 避开修改 对共享资源只读不写使用不可修改的内容 直接应对线程安全问题 原子性顺序性可…

作者头像 李华
网站建设 2026/4/26 23:06:27

Go Web框架全面对比:哪一款最适合你的项目?

Go语言(Golang)自发布以来,以其简洁的语法、高效的性能以及出色的并发支持,成为了现代Web开发中一个重要的选择。Go本身是一个非常强大的语言,但由于Go的标准库并不提供一个“完整”的Web框架,许多社区开发…

作者头像 李华
网站建设 2026/4/27 10:54:27

Java开发的AI应用框架简述——LangChain4j、Spring AI、Agent-Flex

LangChain4j LangChain4j官网 star很多,文档齐全,在AI服务中,提供了丰富的功能,示例代码丰富。 简介 是一个功能丰富、易于使用的Java AI开发框架,特别适合需要快速集成和使用大型语言模型的Java开发者。 项目特点 …

作者头像 李华
网站建设 2026/4/28 21:31:32

基于 ANFIS 的非线性回归(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

作者头像 李华
网站建设 2026/4/19 2:19:04

FastAPI 路径操作依赖项

FastAPI 路径操作依赖项 引言 FastAPI 是一个现代、快速(高性能)的 Web 框架,用于构建 API,由 Python 3.6+ 支持并基于标准 Python 类型提示。依赖项是 FastAPI 中一个强大的特性,它允许我们在请求处理期间执行各种操作,例如身份验证、数据验证、权限检查等。本文将深入…

作者头像 李华
网站建设 2026/4/25 8:00:10

亲测好用10个AI论文工具,专科生轻松搞定论文写作!

亲测好用10个AI论文工具,专科生轻松搞定论文写作! AI 工具助力论文写作,专科生也能轻松应对 在如今的学术环境中,AI 工具正逐渐成为学生和研究者不可或缺的助手。尤其是在论文写作过程中,AI 不仅能够帮助提高效率&…

作者头像 李华