数据库外键

数据库设置外键的作用 数据库外键(Foreign Key)是关系型数据库中用于建立表与表之间关联关系的重要约束,其核心作用是确保数据的一致性、完整性和关联性。外键约束强制从表的数据必须匹配主表的现有数据,避免出现“孤立数据”(即从表数据引用主表中不存在的记录)。合理使用外键可增强数据库的可靠性,但需结合具体场景权衡性能与约束强度。外键通过引用另一张表的主键(或唯一键),明确表与表之间的。(主表与从表),使离散的数据形成逻辑关联。 阅读详情

外键的概念:

     外键是一个指向另一张表格的字段,它的值必须与被指向的表格中的某个字段的值相同。这种联系可以用来实现数据的完整性约束和关联查询等功能。使用外键能够确保数据的一致性和正确性,防止出现不合法的数据。外键同时也是一种用于关系型数据库中的约束,它定义了两个表之间的关系。外键指向另一个表中的主键,使得在执行操作(如更新或删除记录)时,可以保证数据的完整性和一致性。

举个例子:

    假设我们有两个表格:一个是订单表格,包含了订单的基本信息;另一个是客户表格,包含了客户的基本信息。如果我们希望每个订单都对应着一个客户,那么我们可以在订单表格中添加一个外键,指向客户表格中的客户ID字段。这样,在插入新订单时,数据库会自动检查客户ID是否存在于客户表格中,从而保证数据的一致性和正确性。同时,我们也可以通过关联查询来获得每个订单对应的客户信息。

外键的作用:

     外键的主要作用是建立关系型数据库中的表之间的联系,保证数据的一致性和完整性。具体来说,外键可以发挥以下几个作用:

  1. 数据一致性:通过外键约束,可以确保在插入、更新或删除数据时,所引用的外键值必须存在于被引用表的主键值中,从而保证了数据的一致性。

  2. 数据完整性:外键还可以限制数据的完整性,即需要满足特定数据类型、范围、长度等条件才能被插入到表中,从而避免了数据脏乱的情况。

  3. 提高查询效率:使用外键可以加速查询,因为它可以建立多表关联,避免了大量的 JOIN 操作,提高了查询效率。

  4. 级联操作:外键还可以实现级联操作,例如当删除主表中某条记录时,其相关从表的记录也会被删除,从而达到级联删除的目的。


下面再提一下主键以及主键和外键的使用条件:

   主键和外键都是关系型数据库中常用的概念,它们之间有一定的联系和区别。

   主键是一个唯一标识,用于标识表格中的每一行记录。主键必须满足以下条件:

       主键值必须在表格中唯一;
       主键值不能为空或Null;
       主键可以由一个或多个字段组成。
       通常情况下,一个表格只能有一个主键,因为主键的作用就是唯一标识某一行记录,如果存在多个主键则无法达到这个目的。

   外键是用于建立表格之间联系的一个字段(或多个字段),它指向了另一个表格的主键。外键必须满足以下条件:

       外键值必须存在于被引用表格的主键值中;
       外键值可以为空或Null;
       外键可以由一个或多个字段组成。
  使用外键可以建立多个表格之间的关系,实现数据的完整性约束和级联操作等功能。

      需要注意的是,外键所引用的主键必须是唯一的,否则将无法确保数据的一致性和正确性。此外,在设计表格时,应尽量避免使用过多的外键,以免影响查询效率。

      

 

统信UOS V20 安装mysql5.7.42详细教程 到bin/下,执行下面的命令,初始化mysql服务信息,得到数据库的初始密码,实际如果目录不一样记得换成自己的目录。下载后通过远程将安装包上传至服务器,我这里将安装包上传至/usr/local/mysql 下。ps:这时候如果还是不能远程访问的话,可能是防火墙的原因,命令行执行以下命令即可。再次登录,发现缺少 libtinfo.so.5文件,再次建立软连接。登录,发现报错,提示缺少libncurses.so.5文件,使用。创建 /var/lib/ 下mysql目录。登录成功,修改密码,设置远程访问。 阅读详情

相关推荐

ANSYS Fluent 2023R2实战:用欧拉多相流模型搞定流化床模拟(附详细参数避坑)

本文详细解析了ANSYS Fluent 2023R2中欧拉多相流模型在流化床模拟中的应用,包括模型选择、材料属性设置、相间作用力配置及初始化技巧。特别针对高颗粒浓度工况提供参数优化方案,帮助工程师提升模拟精度与效率,适用于化工、能源等领域的流化床反应器设计。

weixin_30938149的博客 268

数据库中的外键

此ALTER TABLE语句告诉数据库管理系统为订单表(Order)中的customer_id列添加一个外键,它的名称为fk_order_customer,同时指定此外键引用顾客表(Customer)的customer_id列。在这种情况下,表之间的关系是经理表是“参照表”(也称为主表),员工表(Employee)是“引用表”。为了限制员工表中每个员工记录中的ManagerID列只能引用有效的经理记录,我们可以对员工表中的ManagerID列创建一个外键约束,引用经理表中的ManagerID列。

cpy1356140308的博客 7687

Aurix TC387 Ethernet代码解析之二_移植

英飞凌官方仅提供了TC397的例程,故需通过TC397例程来移植到TC387新建工程里。TC397官方例程名称【Ethernet_1_KIT_TC397_TFT】,网络上可以免费获取到,此处不赘述。使用工具【

m0_69929716的博客 884

数据库-外键

在定义外键关系时,可以选择设置级联操作,例如当主表中的记录被删除或更新时,相关的从表记录可以被自动删除、更新或设置为 NULL。在数据库中,"外键"(Foreign Key)和"外键约束"(Foreign Key Constraint)通常是指相同的概念,但它们略有不同的侧重点。外键约束定义了外键字段与相关联表中的主键或唯一键之间的关系,并规定了对外键字段进行插入、更新和删除操作时所需要遵循的规则。在数据库中起到了关联表之间关系的作用,它定义了一个表中的字段与另一个表中的字段之间的关联关系。

evesmith520的博客 1万+

实战指南 | 快速修复Adobe Acrobat 2020安装过程中的常见注册表错误

本文提供了Adobe Acrobat 2020安装过程中遇到“无法打开键”注册表错误的详细修复指南。通过安全编辑注册表,精准定位并删除残留键值,可快速解决此常见安装报错,确保软件顺利安装。同时,文章也介绍了其他安装问题的应对策略与预防措施。

weixin_29200485的博客 560

深入解析SSD报错“READ FPDMA QUEUED”:从诊断到修复全流程

本文深入解析了SSD报错“READ FPDMA QUEUED”的含义、成因与全流程解决方案。该错误通常指示硬盘硬件或健康状态问题。文章详细介绍了如何通过系统日志定位错误、解读关键的S.M.A.R.T.健康报告(重点关注重分配扇区计数等指标),并逐步进行硬件排查(如更换SATA数据线)、软件修复与数据抢救,最终指导用户根据诊断结果做出维修或更换SSD的决策。

weixin_29233333的博客 398

【数据库】外键的作用

数据库外键作用

wangshiqi666的博客 1750

国科大作业考试资料《人工智能原理与算法》2024新编-第二次作业整理

1、对于下列活动,分别给出任务环境的PEAS描述, 并按2.3.2节列出的性质进行分析: 3、为图2.2中描述的吸尘器世界实现一个可以进行性能度量的环境模拟器。你的实现是必须是模块化的,以使传感器、执行器和环境特征(大小、形状、灰尘放置等)便于修改。 4、实现上述题目真空吸尘器环境中的简单反射Agent。用所有可能的初始灰尘分布和Agent位置,运行环境模拟器和Agent。记录Agent在每种情况下的性能评分和总体平均评分。

MatsumotoChrikk 1187

数据库主键和外键

关系型数据库中的一条记录中有若干个属性,若其中某一个属性组(注意是组)能唯一标识一条记录,该属性组就可以成为一个主键比如学生表(学号,姓名,性别,班级)其中每个学生的学号是唯一的,学号就是一个主键课程表(课程编号,课程名,学分)其中课程编号是唯一的,课程编号就是一个主键成绩表(学号,课程号,成绩)成绩表中单一一个属性无法唯一标识一条记录,学号和课程号的组合才可以唯一标识一条记录,所以 学号和课程号的属性组是一个主键。

墨痕诉清风的博客 2万+

SAP CPI 之使用国密算法实现SM系列算法加解密

System.out.println("SM2-私钥:" + privateKey);System.out.println("SM2-公钥:" + publicKey);System.out.println("SM2-密文:" + encrypts);System.out.println("SM2-明文:" + data2);新建groovy,通过import之后,调用jar包中的方法。在CP中导入jar包,选择Upload,选中导入的jar包。的密钥和向量值,不安全!的公钥和私钥,不安全!

u012830826的博客 1335

paddlehub无法安装,安装报错【Bug完美解决】

paddlehub无法安装,安装报错【Bug完美解决】 我们正在进行一个基于Python的项目开发,该项目需要集成PaddleHub,以利用其丰富的深度学习模型和工具。PaddleHub提供了一种简便的方式来使用预训练模型,以加速开发过程并提高模型效果。 现在paddlehub安装出现问题了,本文彻底解决paddlehub无法安装的问题。

一键难忘的博客 3387

数据库中的外键是否必要存在

说起来为什么谈到这个话题,其实原因特别简单。在我做毕业设计的时候,我本身再设计表的时候并没有加外键。这是正常的。但是在老师检查的时候,一直在说,一定要有外键约束。不然不符合数据库设计规范。(当然这句话是不对的。)最后强制我在数据库中加了好多条外键。因为在我们日常工作中确实很少用到外键。甚至都不会用。包括在阿里的JAVA开发规范中也有下面这一条 【强制】不得使用外键与级联,一切外键概念必须在应用层解决。 但是呢,如果真问一下具体为什么。可能会这么说。 每次做DELETE 或者UPDATE都必须考虑外键约束,会

qq_45601069的博客 3808

《测控仪器设计课后习题答案-浦昭邦-王宝光

《测控仪器设计课后习题答案-浦昭邦-王宝光 1.1. 测控仪器的概念是什么? 测控仪器则是利用测量和控制的理论,采用机、电、光各种计量测试原理及控制系统与计算机相结合的一种范围广泛的测量仪器。 1.2. 为什么说测控仪器的发展与科学技术发展密切相关? 仪器仪表的用途和重要性— 遍及国民经济各个部门,深入到人民生活的各个角落,仪器仪表中的计量测试仪器与控制仪器统称为测控仪器,可以说测控仪器的水平是科学技术现代化的重要标志。 仪器仪表的用途: 在机械制造业中:对产品的静态与动态性能测试;加工过程的控制与监测;设

无名何许人的博客 2976

Database学习 - mysql 数据库 外键

外键   外键约束子表的含义:如果在父表中赵达不到候选键,则不允许在子表上进行insert/update   外键预约对父表的含义:在父表上进行update/delete以更新或删除子表中有一条或多条对应匹配的候选键时,父表的行为取决于,在定义子表的外键时指定的on update/ on delete 字句. 创建外键   建表时定义外键 foreign key (...

dixian4894的博客 210

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

外键必须是另一个表的主键吗_我为什么不建议你使用数据库外键?

点击上方一个优秀的废人,选择“设为星标”优质文章,及时送达作者 | bang,Piotr Kononow链接 | www.jdon.com/49188Piotr Kononow是一位业务分析师、软件架构师和项目经理,他拥有15年以上编程经验和背景(SQL,java,C++…)。他的专长是数据仓库/ BI和商业应用,这是他的一篇文章:最近我和几位DBA和架构师争论,他们对一些数据库没有外键...

weixin_39970064的博客 1839

OV9734 DATASHEET,完整规格书

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

菜鸟学数据库——超键、候选键、主键、外键

这些年的一些经历告诉我,很多初学者搞不清超键、候选键等,被数据库中的各种键搞的一头雾水。下面就跟大家一起聊聊数据库中的那些键。 首先看看各种键的定义: 超键(super key):在关系中能唯一标识元组的属性集称为关系模式的超键 候选键(candidate key):不含有多余属性的超键称为候选键 主键(primary key):用户选作元组标识的一个候选键程序主键 外键(f.........

纸上得来终觉浅,绝知此事要躬行 6万+

数据库不使用外键的 9 个理由

作者 | bang,Piotr Kononow 链接 | www.jdon.com/49188 来自公众号:好好学java 仅供个人学习研究使用,如有侵权,立马删除 Piotr Kononow是一位业务分析师、软件架构师和项目经理,他拥有15年以上编程经验和背景(SQL,java,C++…)。他的专长是数据仓库/ BI和商业应用,这是他的一篇文章: 最近我和几位DBA和架构师争论,他们对...

ido1ok的博客 344

为什么数据库不应该使用外键

外键在数据库设计中是一个双刃剑。它可以在数据库层面确保数据的完整性和一致性,但也会增加数据库的负担,影响性能和开发灵活性。在实际应用中,需要根据具体的业务需求和性能要求来决定是否使用外键。对于数据完整性要求高的核心业务表,使用外键可以确保数据的正确性;而对于性能要求高的非核心业务表,可以在应用层通过逻辑控制来确保数据一致性,从而提高系统的整体性能。

xqdd的专栏 1021

什么是数据库的逻辑外键?数据库的物理外键和逻辑外键各有什么优缺点?

什么是数据库的逻辑外键?数据库的物理外键和逻辑外键各有什么优缺点?

qq_30939943的博客 1765

数据库不推荐使用外键的9个理由

来源:www.jdon.com/49188我的经验告诉我,很多数据库(大多数我曾经使用的)不包含外键时并不总是一件坏事。在这篇文章中,我想把重点放在为什么的原因上。为什么这是一个问题?1...

公众号-老炮说Java 419

所谓的数据库物理外键与逻辑外键

所谓的数据库物理外键与逻辑外键 当看到物理外键的时候,第一反应是有物理外键那一定有逻辑外键,那我熟悉的外键是什么? 物理外键指的是使用foreign key 作为外键关联另一张的字段的连接方法,而且限定了引擎为InnoDB,而逻辑外键,又叫做事实外键,是因为存在语法上的逻辑关联而产生的外键,需要有连接关键词inner join 或者left join 等等和连接部分,也就是on后面的部分,如果需要对应的设置,也可以加上set等语句。 看到的一网友的评论,引起我的共鸣: SQL FOREIGN KEY 约束

Xx__WangQi的博客 9043

mysql的无外键设计_数据库设计可以不要外键的7个理由

我在大学时上数据库的课程,学的三个范式中有个第三范式就是专指的外键约束。可是出来工作以后第一次做数据库表设计的时候,组长大佬却让我在数据库中不要使用外键,改在代码中做相应处理。说得专业点,就是不要在数据库中使用物理外键,改为使用逻辑外键,即在代码中写相关的逻辑代替外键所起的作用。我从此便懂得了,解决实际的问题要从实际出发,不能照本宣科。外键的作用1.外键能保证数据的完整性。在没有外键的情况下,数据...

weixin_29463881的博客 1599

什么是数据库外键?

外键就是一个表中的一个字段引用了另一个表中的主键,引用的表叫做子表,被引用的表叫做主表,外键是一种约束,描述的是表之间的关系。

liangweihao的博客 2万+

数据库主键与外键的区别

数据库主键与外键 我们知道,好的数据结构会影响速度,当然,好的数据库表设计会影响数据库操作效率。 特别是数据特别多的时候如果表的结构不好的话,操作将会变得特别复杂。其中,主键和外键值得我们去了解。 在开始了解主键和外键之前,你肯定了解一些RDBMS术语,我们来做一个简单回顾: ***RDBMS相关术语:*** 数据库:数据库是一些关联表的集合。 数据表: 表是数据的矩阵。在一个数...

weixin_44270855的博客 1万+

数据库——添加外键约束

添加外键约束名字一定不能重复

心若静#风奈何的博客 2万+

为什么大多数项目的数据库都取消外键了(外键取消原因)

数据库外键 如果一个字段a在一张表(表一)中是主关键字,而在另外一张表(表二)中不是主关键字,则字段a称为表二的外键; 主键表和外键表的理解 (1)以公共关键字(也就是两张表共有的字段)作主键的表为主键表(父表,主表) (2)以公共关键字(也就是两张表共有的字段)作外键的表为外键表(从表,外表) 外键的作用 主键保证了数据的唯一性,外键保证了数据的完整性。 主键是能确定一条记录的唯一标识,比如,一条记录包括身份正号,姓名,年龄。身份证号是唯一能确定你这个人的,其他都可能有重复,所以,身份证号是主键

白小纯的博客 2736
上一篇: Thymeleaf的一些基本概念
下一篇: Model和ModelAndView
Cxzzzzzzzzzz
博客等级 码龄4年 229粉丝 62原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值