文章目录

  • 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)
);

先自我介绍一下,小编13年上师交大毕业,曾经在小公司待过,去过华为OPPO等大厂,18年进入阿里,直到现在。深知大多数初中级java工程师,想要升技能,往往是需要自己摸索成长或是报班学习,但对于培训机构动则近万元的学费,着实压力不小。自己不成体系的自学效率很低又漫长,而且容易碰到天花板技术停止不前。因此我收集了一份《java开发全套学习资料》送给大家,初衷也很简单,就是希望帮助到想自学又不知道该从何学起的朋友,同时减轻大家的负担。添加下方名片,即可获取全套学习资料哦

Java进阶 主键和外键的使用区别相关推荐

  1. Java主外键的定义_java编程——浅谈数据库主键和外键及索引

    1.主键: 若某一个属性组(注意是组)能唯一标识一条记录,该属性组就是一个主键.主键不能重复,且只能有一个,也不允许为空.定义主键主要是为了维护关系数据库的完整性. 2.外键: 外键用于与另一张表的关 ...

  2. sql添加删除主键、外键

    在创建表时设立主键.外键 create table student(sid integer,sname nvarchar2(64),teacherId integer,primary key(sid) ...

  3. SQL的主键和外键约束

    SQL的主键和外键的作用: 外键取值规则:空值或参照的主键值. (1)插入非空值时,如果主键表中没有这个值,则不能插入. (2)更新时,不能改为主键表中没有的值. (3)删除主键表记录时,你可以在建外 ...

  4. mysql中主键外键的作用_数据库主键和外键的作用以及索引的作用,它的优缺点是什么?...

    定义主键和外键主要是为了维护关系数据库的完整性,总结一下: 1.主键是能确定一条记录的唯一标识,比如,一条记录包括身份正号,姓名,年龄. 身份证号是唯一能确定你这个人的,其他都可能有重复,所以,身份证 ...

  5. MySQL的几个概念:主键,外键,索引,唯一索引

    一.概念: 1.主键(primary key) 能够唯一标识表中某一行的属性或属性组.一个表只能有一个主键,但可以有多个候选索引.主键常常与外键构成参照完整性约束,防止出现数据不一致.主键可以保证记录 ...

  6. 超键、候选键、主键、外键、联合主键、复合主键

    首先看看各种键的定义: 超键(super key):在关系中能唯一标识元组的属性集称为关系模式的超键(只要有一个键唯一,再随便组其他的键,合起来叫主键) 候选键(candidatekey):不含有多余 ...

  7. mysql中有主键和外键吗_谈谈mysql的主键和外键

    主键:保证数据的唯一性,非空且唯一,一般设置主键的语法为:字段 类型 PRIMARY KEY;或者 字段 类型,PRIMARY KEY(字段名) 外键:保证数据的完整性,一致性.一般设置的外键关联的是 ...

  8. 在数据库什么是主键与外键

    在数据库什么是主键与外键 2008-03-05 15:03 这需要理清几个概念: 1)候选键: 关系中的一个属性组,其值能唯一标识一个元组,若从该属性组中去掉任何一个属性,它就不具有这一性质了,这样的 ...

  9. 数据库元数据数据字典查询_5_列出给定表的主键、外键约束

    列出给定表的主键.外键约束 需求描述 需求:查询出给定的表emp的外键约束信息. 解决方法:通过各个数据库里提供的与外键约束相关的数据字典进行查询. 注: 数据库数据集SQL脚本详见如下链接地址 员工 ...

最新文章

  1. 手机与Camera CCM技术发展趋势
  2. python3 循环语句
  3. python扫描proxy并获取可用代理ip列表
  4. js jquery 数组的合并 对象的合并
  5. 学IT技术几个好的网站
  6. C# 7中函数多值返回_转自InfoQ
  7. angular移除事件绑定事件绑定_Vue.js子组件利用事件向父组件传输数据,以及sync修饰符和双向绑定...
  8. 量子计算机功率,量子计算功耗知多少
  9. 数据源管理 | 搜索引擎框架,ElasticSearch集群模式
  10. vue请求数据完成后执行_生产库删除数据后怎样执行对应的undo sql来恢复数据?...
  11. python bootstrap安装_python + django + bootstrap + uWSGI + nginx 环境搭建
  12. Vue.js2.0从入门到放弃---入门实例(一)
  13. C++ 日期 时间
  14. 【Pix4d精品教程】Pix4d项目空三结果精度评估完整解决方案(建议收藏)
  15. windows 下载 gcc
  16. OpenCV-绘制同心圆
  17. 对于踏入社会的我们来说,学历到底有多重要?学历的用途介绍
  18. Mac Chrome浏览器快捷键大全
  19. CAD碎片化学习教程 @3. 设置当前字体
  20. 有关于3GPP SUL的一些学习

热门文章

  1. Jenkins-Slave分布式架构搭建
  2. 物联网技术周报第 121 期: 使用 Arduino 监测你的睡眠质量
  3. [FPGA/Vivado/ILA]Vivado的ILA核在Waveform界面无任何变化,抓取不到信号和数据
  4. 数学图形(2.17)pappus螺线
  5. android xml 加载错误提示,加载uixml文件失败 打开wps时显示“加载XML文件失败1
  6. linux广播命令,linux 向所有登录用户发送广播 wall命令
  7. 为什么需要云计算机,为什么需要云计算
  8. 联想Y7000P 2019装Ubuntu双系统遇到的问题
  9. Entity FrameWork中常用的数据修改方式
  10. PentestBox-v2.2 基础