mysql外键理解

Cadence PCB SI仿真实战:如何手动添加VIA过孔模型提升板级链路精度 本文详细介绍了在Cadence PCB SI仿真中如何手动添加VIA过孔模型以提升DDR4/5设计的精度。通过参数化建模和三维全波建模技术,工程师可以有效解决高速设计中的信号完整性问题,显著降低仿真误差。文章还提供了实战案例和常见问题解决方案,帮助优化板级链路性能。 阅读详情

一个班级的学生个人信息表:

\

什么是外键

在设计的时候,就给表1加入一个外键,这个外键就是表2中的学号字段,那么这样表1就是主表,表2就是子表。

 

外键用来干什么

 

为了一张表记录的数据不要太过冗余。

这和软件project的模块化思想差点儿相同类似,仅仅只是在数据库中是对表关系进行解耦,尽量让表 记录的数据单一化。就如你贴的图片中,把成绩和学生信息放在一张表中就太冗余了。

 

为什么说外键能保持数据的一致性、完整性

 

你想想,你的图中的第一章表切割成了表1和表2,表2的学号引用了表1的学号字段作为外键,假设不建立外键,仅仅是和表1一样单纯性地设立一个学号字段,那么和建立外键有什么差别呢?

比方表1中张三的学号为20140900001。那么我在表2中插数据的时候在学号字段插20140900001来记录张三的成绩不也是做到了表的解耦了吗?

这里存在的问题是,在不设置外键的情况下。表2的学号字段和表1的学号字段是没有关联的。仅仅是你自己觉得他们有关系而已,数据库并不觉得它俩有关系。也就是说,你在表2的学号字段插了一个值(比方20140999999),可是这个值在表1中并没有,这个时候,数据库还是同意你插入的,它并不会对插入的数据做关系检查。然而在设置外键的情况下,你插入表2学号字段的值必需要求在表1的学号字段能找到。同一时候,假设你要删除表1的某个学号字段,必须保证表2中没有引用该字段值的列,否则就没法删除。

这就是所谓的保持数据的一致性和完整性。你想,假设表2还引用表1的某个学号,你却把表1中的这个学号删了,表2就不知道这个学号相应的学生是哪个学生。数据的一致性还包含数据类型的一致性(这个见以下就知道了)。

 

外键的使用规则

从表的字段必须与外键类型同样(如上,分数表 stu 的类型必须和学生表 sid 的类型同样,比方都是 int(10) 类型);外键必须是主表的唯一键(如上,学生表 sid 是主键,而主键是唯一的,所以能够作为分数表 stu 的外键);有关联的字段(如上,分数表之所以使用学生表的 sid 是由于两者有关联。分数表记录的是学生的分数,而学生能够用 sid 来唯 一标识);避免使用复合键(也就是说从表能够同一时候引用多个主表的字段作为一个外键,一般不推荐这样的做法)。

 

外键不一定须要作为从表的主键。外键也不一定是主表的主键。主表的唯一键就能够作为从表的外键。

 

 

1、外键是属于约束的一种,所谓约束顾名思义,就是限制你在数据库的操作。

 

而你对数据库有什么操作,无非是增、删、改、查。外键起的作用就是让你在数据库帮助的情况下更合理的添加数据的正确度。 2、所以,外键仅仅是辅助,假设A表的id字段设置为B表id的外键。仅仅是建立了一种约束关系,在建表的时候,即使A表id字段建立后,B表也要建立id字段。

3、外键的作用是可以避免例如以下情况。

如 【班级信息表】存放的是班级信息表。

【学生表】存放的是学生信息,包括班级信息。

这个时候 在【学生表】中存放的班级信息应该在【班级信息表】存在才合法,自己人为控制的话难免有漏掉的情况,用外键则可以让数据库自己主动控制,当插入【学生表】中的数据在【班级信息表】不存在的时候,数据库不同意插入。

 

建立方法
能够在创建表的时候创建,也能够在创建表之后创建。
创建表时创建:
create table student
(id int  primary key,
name char(4),
dept char(9)
sex char(4))

create table grade
(id int ,
grade int
constraint id_fk foreign key (id) references student (id)
)

或创建了两表之后再建
alter table grade
add constraint id_fk  foreign key (id) references student (id)
【HYSPLIT 教程第二期】Inline WRF-HYSPLIT 耦合 阅读详情

相关推荐

【LTspice】005 伯德图绘制

目录 1 伯德图介绍 2 LTspice 截止频率验证 3 LTspice中如何添加光标 4 LTspice中如何将 幅频 和 相频曲线分开 1 伯德图介绍 Bode图由对数幅频特性和对数相频特性两张图组成。伯德图_百度百科 (1)对数幅频特性曲线 对数幅频特性是频率特性的对数值L(ω)=20lgA (ω)(dB)与频率ω的关系曲线;对数幅频特性的纵轴采用线性分度,为幅值的分贝数,即 L(ω)=20lgA(ω),A(ω)每增加10倍,L(ω)增加20dB;横坐标采用对数分度,即横轴上的ω取

m0_59642765的博客 1万+

MySQL中的外键(foreign key)

引言 在MySQL中,我们都对主键比较了解,知道主键的主要作用是唯一区分表中的各个行;但是,对于外键(foreign key) 比较陌生。那么什么是外键呢?外键的作用是什么呢? 一、外键、外键作用及其限制条件 1.外键的定义: 外键是某个表中的一列,它包含在另一个表的主键中。 外键也是索引的一种,是通过一张表中的一列指向另一张表中的主键,来对两张表进行关联。 一张表可以有一个外键,也可以存在多个外键,与多张表进行关联。 2.外键的作用: 外键的主要作用是保证数据的一致性和完整性,并且减少数据冗余。主要

从未完美过的博客 1万+

从零开始掌握Python机器学习:七步教程 基础篇

前言 「开始」往往是最难的,尤其是当选择太多的时候,一个人往往很难下定决定做出选择。本教程的目的是帮助几乎没有 Python 机器学习背景的新手成长为知识渊博的实践者,而且这个过程中仅需要使用免费的材料和资源即可。 第一步:基本 Python 技能 如果我们打算利用 Python 来执行机器学习,那么对 Python 有一些基本的了解就是至关重要的。 首先,你需要安装 Python。因为我们后...

hcgx2018的博客 1613

MySQL —— 外键

目录1、外键是什么2、外键的作用3、如何创建外键 1、外键是什么 定义: 一张表中的非主键字段指向了另一张表中的主键,称之为外键。 一张表可以有多个外键,但是表之间不能跨引擎。只有 InnoDB引擎才支持外键。 2、外键的作用 外键的作用:保持数据的一致性、完整性。具体体现在以下两个方面: 2.1 阻止执行 从表插入新行,其外键值不是主表的主键值便阻止插入 从表修改外键值,新值不是主表的主键值便阻止修改 主表删除行,其主键值在从表里存在便阻止删除(即必须先删除从表的相关行,才能删除主表行) 主表修改主键值,

weixin_44798320的博客 1678

在 Zemax 非序列模式下建立干涉仪模型

Zemax 利用其相干检测功能,将到达探测器的射线的能量相干地组合起来,同时考虑每条检测到的射线的幅度和相位。从对这些干涉条纹的定量评估来看,光学干涉仪具有广泛的应用,包括在天文学中用于测量天体的大小,在计量学中用于精确测量距离,在显微镜中用于提高分辨率,以及在物理和工程的各个领域中用于检测条件的微小变化。在光学干涉仪中,使用的是光波。非相干和相干相加的总功率是守恒的,但相干光束的峰值辐照度应该是非相干光束总和的 2 倍,这是理所当然的。请注意,条纹的缺失是显而易见的,因为不再从相干的角度观察探测器。

jkh920184196的博客 2381

KiCad 7.0 + 嘉立创打样:从原理图到实物,打造你的双LLCC68 LoRa串口透传板

本文详细介绍了使用KiCad 7.0设计双LLCC68 LoRa串口透传板的完整流程,从原理图设计到嘉立创打样。重点解析了AVR+LLCC68组合的优势、双模块布局的电磁兼容设计、SPI接口配置及射频走线技巧,并提供了实测数据和常见问题解决方案,帮助开发者高效实现物联网设备的低功耗远距离通信。

weixin_28693447的博客 260

理解MySQL核心技术:外键的概念作用和应用实例

在数据库管理系统(DBMS)中,外键(Foreign Key)是维持数据一致性和实现数据完整性的重要工具。本文将详细介绍MySQL外键的基本概念、作用,以及相关的操作指南和应用实例,帮助读者掌握并灵活运用外键约束。 外键是一种数据库约束,用于在两张表之间建立关系,使得子表中的某个字段或字段组合引用父表的主键或唯一键。通过外键,可以确保相关联的数据在各表之间保持一致性。

qq_39241682的博客 3373

离线安装ambari 更换spark版本 集成carbondate文档

1、Linux系统环境配置 1.1 配置IP地址 vim /etc/sysconfig/network-script/ifcfg-eth0 “DEVICE”:网卡对应的设备别名,如ifcfg-eth0第一块网卡; “HWADDR”:网卡物理地址; “BOOTPROTO”:网卡获得ip地址的方式,Static(静态 ip地址)dhcp(通过dhcp协议获取ip)bootip通过boot...

weixin_44742962的博客 3036

MySQL外键(详解)

MySQL外键(详解) 什么是外键:    外键是指引用另外一个表中的一列或多列数据,被引用的列应该具有主键约束或者唯一性约束(简单来说外键是另一个表的主键或者唯一约束)。外键可以有重复的, 可以是空值,用来建立和加强两个表数据之间的连接 一、主外键关系 在上图上涉及的两个表中,学生信息表 (stuInfo)为主表,学生 成绩表(score)为从表;那么主从表之间有什么关系呢? 1、当主表中没有对应的记录时,不能将记录添加到子表   --------学生成绩表中不能出现学生信息表中没有的学号 2、不能更

大佬云集技术答疑交流群:743262921(进群暗号:222) 2万+

图像拼接——ITKMontage

ITKMontage是一个开源的、高性能的图像拼接软件模块。它的核心任务是将多张部分重叠的图像瓦片(Tiles)拼接成一幅完整的大图,专为处理材料显微科学中产生的大规模、高分辨率图像而设计。针对ITKMontage模块中示例进行了修改,解决了没有文件TileConfiguration.txt的情况,以及使用中的一些BUG。ITKMontage可以单独编译,也可以作为ITK的一个模块进行编译,介绍后一种的cmake设置。本文介绍使用ITKMontage模块进行图像拼接的方法。此处省略编译后的库配置。

2301_79131410的博客 100

7、刚度矩阵与弹簧元素:有限元分析的核心

本文深入探讨了有限元分析中的核心概念——刚度矩阵与弹簧元素。详细介绍了刚度矩阵的定义、构建方法及其对称性、正定性和稀疏性等性质,同时解析了弹簧和阻尼器元素的特性及其在模拟复杂系统中的应用,如液压缸、减震器等。通过结合刚度矩阵与弹簧元素,可以提高结构模型的精度并模拟复杂的工程系统。文章还讨论了优化策略、验证流程、误差分析及实际应用案例,展示了这些技术在桥梁分析、汽车悬挂系统等领域的重要作用,并展望了其在未来新材料、智能结构和数字孪生技术中的发展潜力。

nice1的博客 235

mysql 自己是自己的外键_MySQL外键的个人理解

问题起因:这几天在建表的时候遇到的问题,想试一试插入一下外键,结果折腾了半天,找了不少资料,闹了不少笑话。如果文章写的有问题,请及时指正我的错误,谢谢了。问题描述:错误理解:原来我一直以为,两个表只要存在相同的列就可以把他设成外键,这个想法是错误的。问题解决:查了不少的资料,外键约束(FOREIGN KEY)用来在两个表的数据之间建立链接,它可以是一列或者多列。一个表可以有一个或多个外键。外键对应...

weixin_40001442的博客 2697

【数据集】3D-GloBFP:全球首个三维建筑轮廓数据集

【数据集】3D-GloBFP:全球首个三维建筑轮廓数据集

WW、forever的博客 1689

mysql中创建外键如何理解_mysql外键理解

一个班级的学生个人信息表:什么是外键在设计的时候,就给表1加入一个外键,这个外键就是表2中的学号字段,那么这样表1就是主表,表2就是子表。外键用来干什么为了一张表记录的数据不要太过冗余。这和软件project的模块化思想差点儿相同类似,仅仅只是在数据库中是对表关系进行解耦,尽量让表 记录的数据单一化。就如你贴的图片中,把成绩和学生信息放在一张表中就太冗余了。为什么说外键能保持数据的一致性、完整性你...

weixin_39879522的博客 130

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

mysql 外键理解

假定一个班级的学生个人信息表: 什么是外键 在设计的时候,就给表1加入一个外键,这个外键就是表2中的学号字段,那么这样表1就是主表,表2就是子表。(注意: 外键不一定须要作为从表的主键。外键也不一定是主表的主键。主表的唯一键就能够作为从表的外键。) 外键用来干什么? 为了一张表记录的数据不要太过冗余。 这和软件project的模块化思想差点儿相同类似,仅仅只是在数据库中...

weixin_30906671的博客 92

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

mysql中创建外键如何理解_mysql 外键理解

假定一个班级的学生个人信息表:什么是外键在设计的时候,就给表1加入一个外键,这个外键就是表2中的学号字段,那么这样表1就是主表,表2就是子表。(注意: 外键不一定须要作为从表的主键。外键也不一定是主表的主键。主表的唯一键就能够作为从表的外键。)外键用来干什么? 为了一张表记录的数据不要太过冗余。这和软件project的模块化思想差点儿相同类似,仅仅只是在数据库中是对表关系进行解耦,尽量让表 记录的...

weixin_33217202的博客 146

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

mysql外键的理解

以下是 Oracle 的写法 CONSTRAINT emp_dept_fk FOREIGN KEY table1(department_id) REFERENCES table2(department_id); table1 的 department_id 是外键 table2 的 department_id 是主键 那么也就是说 table1是子表 table2 是主表 主表的是主键,子表的叫做外键 计算机里的数是用二进制表示的,最左边的这一位一般用来表示这个数是正数还是负数,这样的话这.

liulang68的博客 286

深入理解MySQL 主键与外键

MySQL 主键与外键是面试必考、开发必用的核心知识点。本文跳出基础语法,从底层存储逻辑、聚簇索引、页分裂、UUID 避坑、级联操作到工业级角度,全方位帮助读者深度理解主键和外键提示:以下是本篇文章正文内容,下面案例可供参考InnoDB 以数据页(Page)为最小单位管理数据,一个页通常 16KB,空间固定。当插入一条无序数据InnoDB 必须申请新的数据页将原页大约一半数据挪到新页重新调整索引结构,维持有序性这个过程就是页分裂。

2502_93734028的博客 475

谈谈我对MySQL外键字段必须索引的一些理解

前两天被朋友问到一个有关MySQL外键的问题,一下子触及到了知识的盲点,当时有些懵圈。支持事务的InnoDB成为MySQL的默认存储引擎后,在高并发的系统中,很少见到MySQL表使用外键了(我参与的几个项目数据库中都没有使用外键)。当时只能边猜想边查资料进行一些解释,不过,这个问题最终并没有完整地解决,所以在这里做一个记录,谈谈我自己的理解。如果有人无意中看到并且有其他见解,可以共同探讨研

蛙鳜鸡鹳狸猿 1万+

mysql 主键理解_快速理解MySQL中主键与外键的实例教程

主键与外键的关系,通俗点儿讲,我现在有一个论坛,有两张表,一张是主贴 thread,一张是回帖 reply先说说主键,主键是表里面唯一识别记录的字段,一般是帖子id,体现在访问的时候,例如是thread.php?id=1 表示我要访问的是帖子id是1 的帖子~再来说说外键,当我们删除某个帖子的时候,需要执行另一个操作,就是删除所有回帖,如果正常情况下,我们需要执行两次delete操作(thre...

weixin_32090653的博客 279

主键和外键举例_快速理解MySQL中主键与外键的实例教程

主键与外键的关系,通俗点儿讲,我现在有一个论坛,有两张表,一张是主贴 thread,一张是回帖 reply先说说主键,主键是表里面唯一识别记录的字段,一般是帖子id,体现在访问的时候,例如是thread.php?id=1 表示我要访问的是帖子id是1 的帖子~再来说说外键,当我们删除某个帖子的时候,需要执行另一个操作,就是删除所有回帖,如果正常情况下,我们需要执行两次delete操作(thre...

weixin_32642109的博客 1271

mysql主键和外键示例_快速理解MySQL中主键与外键的实例教程

主键与外键的关系,通俗点儿讲,我现在有一个论坛,有两张表,一张是主贴 thread,一张是回帖 reply先说说主键,主键是表里面唯一识别记录的字段,一般是帖子id,体现在访问的时候,例如是thread.php?id=1 表示我要访问的是帖子id是1 的帖子~再来说说外键,当我们删除某个帖子的时候,需要执行另一个操作,就是删除所有回帖,如果正常情况下,我们需要执行两次delete操作(thread...

weixin_33895396的博客 340
上一篇: Tomcat的目录结构详细介绍
下一篇: MySql多对多关系中外键的应用
big_bit
博客等级 码龄11年 67粉丝 40原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值