admin管理员组文章数量:1794759
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班
看上图有两张表,classId是Student的外键,是Class 表的主键, 如果我们要删除Class 表中classId为1的字段,程序是会报错的,因为Student表中有数据和classId为1的字段关联了,是不能删除的,这样子就保证了数据的一致性和完整性。
继续问: 那怎么才能删除呢? 答: 需要先删除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) );先自我介绍一下,小编13年上师交大毕业,曾经在小公司待过,去过华为OPPO等大厂,18年进入阿里,直到现在。深知大多数初中级java工程师,想要升技能,往往是需要自己摸索成长或是报班学习,但对于培训机构动则近万元的学费,着实压力不小。自己不成体系的自学效率很低又漫长,而且容易碰到天花板技术停止不前。因此我收集了一份《java开发全套学习资料》送给大家,初衷也很简单,就是希望帮助到想自学又不知道该从何学起的朋友,同时减轻大家的负担。添加下方名片,即可获取全套学习资料哦
版权声明:本文标题:Java进阶 主键和外键的使用区别 内容由林淑君副主任自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.xiehuijuan.com/baike/1686790814a103337.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论