首页 > 数据库 >多个数据库表建立外键约束的相关理解

多个数据库表建立外键约束的相关理解

时间:2022-10-24 22:11:51浏览次数:49  
标签:关系 代码 表间 约束 外键 如下 数据库

一、知识准备

所谓“外键约束”,就是一个表中的FOREIGN KEY 与另一个表中的UNIQUE KEY(唯一约束的建,一般为主键)

通俗一些的话,就是将单独的没有啥关系的表利用一些共同点结合起来,在进行表的相关操作时,这几个“外键约束”的表都会受到关联

那么,我们需要如何实现外键约束呢?

经过查找相关资料,得出以下结论:

在表的关系中,存在三种关系:包括一对一、一对多、多对多

首先来说------一对一

一对一的话,在哪一个表中添加外键都是可以的,代码如下:

得到这样的结果:

两边均没有分叉,是一对一的表间关系啦!

其次,就是------一对多

一对多的话,他两边是不均衡的,所以首先需要搞清楚的是,我们要将外键加在哪一边?

答案揭晓:将外键加在的那一边!

代码如下:

需要注意的是,在多的那张表里面,需要进行对应的数据中,不要有主表里面不存在的数据,否则就会报错!

得到结果如下:

一个仅有一个分叉,另一个有多个分叉,是一对多的表间关系啦!

最后,就是------多对多

多对多对外键加在那一边并没有特别要求,但是多对多最不同的一点是:这种关系下,需要建立第三张表与之建立联系,才能够实现多对多的对应关系

代码如下:

中间表放在前面,其余与前面代码基本一致;

得到结果如下:

三个表实现了外键约束

删除表间关系的语句

在我们使用完之后或许想要将几个表之间的关系删除,那么我们就需要这样一行代码来实现这件事,代码如下:

主要语法为:

alter table 其中一个表名 drop foreign key 外键约束名;

起初,我没找到外键约束名在哪里,后来,进入表间模型之后,无意间选中了“设计关系”,就发现了外键约束名,没找到的小伙伴们也可以试一试嗷!

表间的关系到这里就先结束啦!

对啦!如果有不太理解如何在mysql数据库里面进入到表模型界面的。可以继续向下看一看呦!

在已经在新建的表里面进行了外键约束,且回复OK,想要查看可视化外键约束的,可以这么做:

选中你已经建立约束的表(有几个选几个),然后右键,选择“逆向表到模型...”,就可以跳转到可视化约束界面啦!

下次见啦!

标签:关系,代码,表间,约束,外键,如下,数据库
From: https://www.cnblogs.com/liuzijin/p/16819846.html

相关文章

  • MySQL执行过程(一条SQL从Java到数据库都经历了什么)
    MySQL执行过程(一条SQL从Java到数据库都经历了什么) 2021-11-1420:44:47    小道仙    100阅读    0评论视频地址 https://www.bilibili.com/video......
  • 百花齐放的国产数据库,献礼国庆节
    文章目录​​前言​​​​......
  • Springboot数据库的配置问题
    mysql时区问题先前的代码如下spring:datasource:url:jdbc:mysql://localhost:3306/testusername:rootpassword:110120driver-class-name:com......
  • day17 MySQL的安装 & 数据库基本语法——增删改查
    day17MySQL登录数据库mysql-hlocalhost-P3307-uroot-p查看所有数据库showdatabases;退出数据库exit;//现有表格usesitu;//使用哪个数据库createtable......
  • 直播预告 | 揭秘时序数据库极致性能背后的存储引擎
    存储引擎是数据库最核心、最复杂的组件之一。存储引擎的设计往往很大程度上决定了数据库的性能。如何针对不同的应用场景设计高性能的存储引擎一直是数据库开发的难题。在时......
  • 数据库视图
    1.定义:从几张基本表中导出的表,视图是一张虚拟的表。数据库只存放视图的定义,而不存放视图对应的数据,这些数据仍存放在原来的基本表中。所以原来表数据变,视图数据也变。......
  • WGCLOUD无法连接到mysql数据库的原因
    WGCLOUD有时候连不上mysql数据库,我们按照以下几点来排查下:1.我们首先检查server/config/application.yml中mysql连接配置是否正确,比如用户名密码这些2.再检查mysql是否已......
  • 约束-外键约束
    外键约束:foreignkey 让表于表产生关系从而保证数据的正确性数据表的创建和数据添加sql语句--创建emp表CREATETABLEemp(idintPRIMARYKEYauto_inc......
  • druid数据库连接池
    数据库连接池简介:1.数据库连接池是个容器,负责分配、管理数据库连接2.它允许应用程序重复使用一个现有的数据库连接,而不是再重新建立一个3.释放空闲时间超过最大空闲时......
  • mysql数据库指定ip远程访问(设置远程连接),赋权操作
    mysql数据库指定ip远程访问(设置远程连接)远程访问mysql报错,ip不允许链接的情况:错误号码1045Accessdeniedforuser'用户名'@'数据库地址'(usingpassword:YES) 查......