数据库外键是什么意思?

外键(FK)是用于建立和加强两个表数据之间的链接的一列或多列。通过将保存表中主键值的一列或多列添加到另一个表中,可创建两个表之间的链接。这个列就成为第二个表的外键。

当创建或更改表时可通过定义 FOREIGN KEY 约束来创建外键。

例如,数据库 pubs 中的 titles 表与 publishers 表有链接,因为在书名和出版商之间存在逻辑联系。

titles 表中的 pub_id 列与 publishers 表中的主键列相对应。titles 表中的 pub_id 列是到 publishers 表的外键。

扩展资料:

保持数据一致性,完整性,主要目的是控制存储在外键表中的数据。 使两张表形成关联,外键只能引用外表中的列的值或使用空值。

学号在成绩表(表2)中是主键,在学生表(表1)中是外键。如果不使用外键,表1的学号字段插了一个值(比如20140999999),但是这个值在表2中并没有,这个时候,数据库允许插入,并不会对插入的数据做关系检查。

然而在设置外键的情况下,插入表1学号字段的值必须要求在表1的学号字段能找到。 同时,如果要删除表2的某个学号字段,必须保证表2中没有引用该字段值的列,否则就没法删除。

这就是所谓的保持数据的一致性和完整性。如右图,如果表1还引用表2的某个学号,却把表1中的这个学号删了,表2就不知道这个学号对应的学生是哪个学生。

更多相关技术文章,请访问PHP中文网!

本文原创发布php中文网,转载请注明出处,感谢您的尊重!

wamp mysql外键设置_数据库外键是什么意思相关推荐

  1. mysql innodb 缓存设置_数据库分享一: MySQL的Innodb缓存相关优化

    无论是对于哪一种数据库来说,缓存技术都是提高数据库性能的关键技术,物理磁盘的访问速度永 远都会与内存的访问速度永远都不是一个数量级的.通过缓存技术无论是在读还是写方面都可以大大提 高数据库整体性能. ...

  2. mysql建表时建外键约束_数据库建表时一定要设置外键约束关系吗?

    如果被引用的表需要做分库分表,那么无法建立外键约束. 使用外键会降低数据库性能,这个说法并不细致.需要详细分析. 建立外键,那么一般引用字段上需要建立索引.如果不建立索引,被引用的表上删除数据,会全表 ...

  3. mysql 外键设置_详解MySQL外键设置

    MySQL外键设置是学习MySQL数据库过程中不能不提的,下面就会为您详细介绍MySQL外键设置的方法,希望对您学习MySQL外键设置方面能有所帮助. 外键的作用: 保持数据一致性,完整性,主要目的是 ...

  4. mysql数据库如何添加外键约束_MySQL数据库之外键约束的简单理解

    定义 如果公共关键字在一个关系中是主关键字,那么这个公共关键字被称为另一个关系的外键.由此可见,外键表示了两个关系之间的相关联系.以另一个关系的外键作主关键字的表被称为主表,具有此外键的表被称为主表的 ...

  5. mysql外键必须是主键吗_mysql数据库外键、主键详解

    一.什么是主键.外键: 关系型数据库中的一条记录中有若干个属性,若其中某一个属性组(注意是组)能唯一标识一条记录,该属性组就可以成为一个主键 比如 学生表(学号,姓名,性别,班级) 其中每个学生的学号 ...

  6. 查看外键名称查看数据库外键名字

    我们要进行删除外键时,需要知道外键的名字,那么如何查看数据库外键呢?有2种方式查看: 1.过查看表的方式查看外键名字: 2.通过mysql自带的系统表查看外键. 更多精彩请访问本文源地址: https ...

  7. restrict 外键约束_主外键和外键约束

    主外键和外键约束 主键 主键(primary key):一列(或一组列),其值能够唯一区分表中每个行 . 外键 外键(foreign key) 外键为某个表中的一列,它包含另一个表的主键值,定义了两个 ...

  8. 数据库助手连接MySQL设置_数据库简易设置助手下载_数据库简易设置助手官方版下载_3DM单机...

    <数据库简易设置助手>是一款数据库配置工具,能够高效便捷对数据库进行管理工作,他支持一件关闭开启数据库,并能够设置服务启动类型,支持一键设置jdk环境,支持系统中安装多个版本的JDk环境, ...

  9. 【MySQL 第10章_数据库的设计规范】

    第10章_数据库的设计规范 1. 为什么需要数据库设计 2.范式 2.1范式简介 2.2范式都包括哪些 2.3 键和相关属性的概念 2.4第一范式(1st NF) 2.5 第二范式(2nd NF) 2 ...

最新文章

  1. 点分治问题 ----------- luoguP2942 [WC2010]重建计划 [点分治 + bfs + 单调队列 + 预处理建树 + 二分 + 01分数规划]
  2. STM32开发 -- DMA详解
  3. 导致Android手机崩溃的壁纸,使用错误的壁纸会使你的Android手机崩溃
  4. Hibernate之加载策略(延迟加载与即时加载)和抓取策略(fetch)
  5. 初一上册计算机教案,人教版七年级上册信息技术教学计划
  6. 动态绑定dropdownlist --开始拣.NET
  7. ​从 Spark Streaming 到 Apache Flink:bilibili 实时平台的架构与实践
  8. 文本的编码格式: ANSI、ASCII、UTF8、UNICODE、GB2312、UCS-2、UTF16
  9. iOS 【iOS-切换控制器的手段及异同】
  10. 如何突破村镇银行业务发展的瓶颈
  11. 测试固态硬盘寿命软件,SSD能用多久在哪看 检测固态硬盘寿命方法
  12. 【ACM】算法竞赛及OJ题面常用英文单词整理(更新ing)
  13. 推荐几款软件界面模型设计工具
  14. 尝鲜体验win11,附赠win11镜像下载地址
  15. linux 内功修炼之一 cpu
  16. Android安卓——实现发短信功能的代码
  17. ICC---data setup
  18. VCP回声调试参数说明
  19. ios中用AFN做https
  20. 丈母娘想女婿了,小伟和陈萌刚拍完婚纱照,就被大衣哥安排去看望

热门文章

  1. 批量修改word中的表格属性
  2. mondb的and和or组合查询,pymongo的and和or组合查询
  3. Linux用户类型简述
  4. CDN百科第五讲 | CDN和游戏加速器有什么区别?
  5. java invoker_http-invoker
  6. 微信群机器人微云助手微小云如何积分商城账户管理
  7. 分布式事务之 Atomikos
  8. 你所不知道的Number()、parseInt()、parseFloat()转换细则
  9. Xcode12:The linked library ‘xxxx.a/Framework‘ is missing one or more architectures
  10. 读书笔记 ——《如何高效学习》斯科特·杨