刚接触关系型数据库的同学,会听过主键和外键的概念。这是关系型数据库的基本概念,需要清楚理解。今天我就以简洁的语言总结一下这个概念。

主键。一句话概括:一张表中,可以用于唯一标识一条记录的字段组(或者说是属性组)。给你一个主键的值,你就可以找到一条确定的记录。如:

学生表:学号,姓名,性别,课程。这里学号就是主键。给你一个学号,就可以找到一条学生记录。

课程表:课程编号,课程名称,学分。这里课程编号就是主键。给你一个课程编号,就可以找到一条课程记录。

成绩表:学号,姓名,课程编号,成绩。这里学号,课程编号都没法做为主键。因为学号可以对映多个成绩,如张三可以修数学,语文。一个课程编号可以对映多个成绩,如语文课程编号可以对映张三的成绩,也可以对映李四的成绩。但是(学号,课程编号)这个属性组可以作为主键。

外键。一句话概括:如果一个表A的主键还存在与另一个表B中,那么B中这个字端可以作为A表的外键。(有一种好记的方法是,存在与外面的主键就是外键)。比如上面成绩表的学号是学生表的外键,成绩表的课程编号是课程表的外键。

主键是唯一的,用于标识一张表。外键可以有多个,用于建立表和表的关系。

关系型数据库中主键(primary key)和外键(foreign key)的概念。相关推荐

  1. SQL中的PRIMARY KEY(PK)(主键)和Foreign Key (FK)(外键解析

    1:ERD(entity relationship dialgram)实体属性图中PK所对应的就是每个表中主键(上图为ERD) 2:当我们用SQL语言查询表的时候,一般第一个列出的就是每个表的主键 主 ...

  2. 数据库中主外键概念详细介绍

    关于数据库的主外键设置问题 一.主外键概念 主键 ​ 1.主键 ​ 简单而言,能够唯一的表示表中的每一行数据,这样的列属性称为表的主键,使用表主键可以保证实体的完整性,可对表内数据进行修改.删除时使用 ...

  3. mysql主键和外键示例_SQL数据库中主键和外键的应用实例

    数据库 什么是数据库主键(Primary Key)? 数据库主键(Primary Key):指的是一个列或多列的属性组合,其属性值能唯一标识一条记录,通过它可强制表的实体完整性. 例如: (tb_Bo ...

  4. SQL约束(主键约束 primary key、外键约束 foreign key、唯一约束unique 、CHECK约束)

    注意: A.表中有数据不能创建约束 B.视图下设置后,要点击保存(只有保存后在才看的到) c   别忘了,点刷新,才会出来呀! 1.主键约束 primary key 主键是每行的唯一标识符,仅仅通过它 ...

  5. 数据库中什么是主键,什么是外键?

    数据库中什么是主键,什么是外键? 作者:不染丹心  来源:博客园  发布时间:2009-12-17 22:57  阅读:128 次  原文链接   [收藏]   这需要理清几个概念: 1)候选键: 关 ...

  6. mysql数据库实体_关系型数据库中实体之间的关系

    关系型数据库实体间有三种关联关系:一对一,一对多,多对多. 一对一关系(1:1): 如果实体集(表)A 中的每一个实休(就是每行记录),在实体集B中只有一条数据与它对应, 反之实体集B 中的每一个实体 ...

  7. mysql支持非关系_说下oracle、mysql、非关系型数据库中的索引结构?

    谢邀~~树懒君悉心整理了一篇索引结构方面的内容,跟各位知友分享分享~ Oracle 索引的数据结构:B-TreeOracle 数据库使用 B-trees 存储索引,来加速数据访问.若没有索引,你必须顺 ...

  8. 关系型数据库中多对多关系的中间表的命名规则

    在关系型数据库中,除了有一对一,一对多外,还有多对多的关系.前两种关系只需要表本身就能表达清楚,然而多对多需要第三张中间表才能表达清楚多对多的关系. 中间表在一般情况下是由三个字段组成: 1.中间表本 ...

  9. mysql表中的多对多关系表_「一对多」关系型数据库中一对多,多对一,多对多关系(详细) - seo实验室...

    一对多 在关系型数据库中,通过外键将表跟表之间联系在了一起. 一个班级有很多学生,外键维护在学生的一方,也就是多的一方.(在做页面设计的时候,需要把两个表连接到一块查询信息) 建立一个student和 ...

  10. Sqoop(三)将关系型数据库中的数据导入到HDFS(包括hive,hbase中)

    本文转自:https://www.cnblogs.com/yfb918/p/10855170.html 一.说明: 将关系型数据库中的数据导入到 HDFS(包括 Hive, HBase) 中,如果导入 ...

最新文章

  1. 143. 最大异或对【贪心 trie】
  2. 时代风口下,东软集团软件业务怎么转型?
  3. Alpine Linux详解
  4. Android开发入门二之AndroidManfest.xml文件详细说明 .
  5. 中文论文万能句型_干货|SCI论文写作的万能句型~
  6. 【2013】将x插入有序数列
  7. makefile写法整理
  8. 微信无法连接服务器10,微信无法连接到服务器【应对方式】
  9. spin_lock spin_lock_irq spin_lock_irqsave、spin_lock_bh
  10. 鼠标滚动导航放大缩小
  11. 决战秋招 -- 经典面试题集锦
  12. unity碰撞检测函数,碰撞信息获取,触发检测,使用粒子系统创建火焰,创建动画(火光闪烁),导航系统,通过导航系统控制人物移动,控制摄像机的跟随,控制角色动画播放
  13. python阿凡提与国王下棋_阿基米德与国王下棋的故事
  14. 石溪计算机学校校服,美国纽约州著名高中推荐盘点,总有你想去的!
  15. ios:在XCode下混合编译C++/Objective-C
  16. java实列方法和静态方法_静态方法,类方法和实例方法
  17. redsocks+iptables+socks5服务商
  18. 类型萃取类型检查 Type-Traits LibraryType Checks --- C++20
  19. python打印输出阶梯_python如何将字符阶梯型输出?
  20. BUAA 计网实验笔记 3

热门文章

  1. ArrayList、LinkedList和Vector三者区别与联系
  2. 原型和原型链 及 instanceof函数
  3. Navicat for Oracle中如何使用外键
  4. mysql操作数据库进行封装实现增删改查功能
  5. 联网玩具CloudPets 泰迪熊泄漏数百万语音信息
  6. 初识Hadoop入门介绍
  7. CloudStack 4.4学习总结之注册ISO
  8. Android之MVC模式
  9. linux设备驱动编写_tasklet机制
  10. 只读的泛型集合(IList(Of T))