1:什么是主键

  在一张表中,用来唯一标识一条记录的字段集,叫做主关键字或者主关键码,简称主键(或主码),这里说"字段集"是因为主键可能用一个字段或者多个字段来表示。举例来看:

  学生表(学号, 姓名, 性别,专业编号),这里学号是主键,一个学号id就可以唯一标识一个学生的信息。另一个表:学生选课表(学号, 课程号, 成绩),这里(学号, 课程号)是主键,因为一个学号(即一个学生)可以选择多门课程,一个课程号(即一个课程)可以被多个学生选择,无法用一个字段来标识一条学生选课的信息记录,而使用(学号, 课程号)这两个字段作为关键字就可以唯一标识学生的选课信息。

2:什么是外键?

  一张表的非主属性是另一个表的主属性就是这个表的外键。这里有两个分别为: 学生表(学号, 姓名, 性别,专业编号),专业信息表(专业编号,专业名称,专业备注信息)。学生表中主键是学号,专业信息表中主键是专业编号。学生表中的非主属性专业编号恰好是专业信息表中的主键。我们就称这个专业编号是学生表的外键。像这样,一个表的非主属性是另一个表的主属性,该非主属性就是外键。

概念定义:什么是父表和子表?

  有两张表A表和B表,表A中的一个字段id是外键,表B中的一个字段id是主键,那么称B为父表,A为子表。就是说一个表中外键字段(相当于这里的A表)是另一个表中(相当于这里的B表)的主键。 还是上面的两个表来举例理解:学生表(学号, 姓名, 性别,专业编号),专业信息表(专业编号,专业名称,专业备注信息)。这里学生表是子表,专业信息表是父表。

  设置表的外键的作用在于建立与父表的联系,比如在专业信息表中某个专业编号的id为'1001',删除这个id后,则学生表中的专业编号id为'1001'的记录也随着删除,这样做的目的在于保证表的完整性。

数据库的三种约束

1.实体完整性约束指的是主键不能为空,如果主键为空了还怎么唯一标识一条记录。
2.参照完整性约束,即外键的约束,某一外键的值必须在它引用的主键字段中存在。如,学生表中专业编号属性的值,必须都存于专业信息表中的专业编号属性中。想一想也就明白了,一个学生(大学生)怎么可能属于一个不存在的专业。
3.用户自定义完整性约束,指的是一些用户自己设定的约束,例如字段是否可以为空,字段值的取值范围(如:人的性别只能取男、女)。

转载于:https://www.cnblogs.com/myseries/p/5222659.html

数据库-主键和外键及其约束相关推荐

  1. 数据库元数据数据字典查询_5_列出给定表的主键、外键约束

    列出给定表的主键.外键约束 需求描述 需求:查询出给定的表emp的外键约束信息. 解决方法:通过各个数据库里提供的与外键约束相关的数据字典进行查询. 注: 数据库数据集SQL脚本详见如下链接地址 员工 ...

  2. SQL数据库语言基础之SqlServer数据表的六大约束(主键、外键、检查、非空、唯一性、默认值约束)的创建

    文章目录 一.主键约束(primary key) 二.外键约束(foreign key) 三.检查约束(check) 四.非空约束(not null) 五.唯一性约束(unique) 六.默认值约束( ...

  3. 数据库原理与应用(SQL Server)教程 主键、外键以及联合主键、复合主键和设置种子数目和增量

    文章目录 前言 一.主键.联合主键和复合主键 (一)主键 (二)联合主键 (三)复合主键 二.外键.设置种子数目和增量 (一)外键的概念 (二)添加外键 (三)设置种子数目和增量 结语 前言 这篇文章 ...

  4. 数据库的主键与外键的区别

    主键是定义一个表中起主要作用的数据项,这些数据项的数据在表中是唯一的,同时系统按主键为表建立索引. 外键是定义一个表中的某数据项的数据,要参照另一个表的主键数据.既没有在另一个表的主键数据中出现的数据 ...

  5. 数据库之SQL的主键和外键的作用

    SQL的主键和外键约束 SQL的主键和外键的作用: 外键取值规则:空值或参照的主键值. (1)插入非空值时,如果主键表中没有这个值,则不能插入. (2)更新时,不能改为主键表中没有的值. (3)删除主 ...

  6. 【数据库】主键和外键的必要性

    主键与外键的设计,在全局数据库的设计中,占有重要地位. 因为:主键是实体的抽象,主键与外键的配对,表示 实体之间的连接. 主键:根据第二范式,需要有一个字段去标识这条记录,主键无疑是最好的标识,但是很 ...

  7. (转载)MySQL数据库的主键和外键详解

    主键 主键的定义 主键:表中经常有一个列或多列的组合,其值能唯一地标识表中的每一行.这样的一列或多列称为表的主键,通过它可强制表的实体完整性.当创建或更改表时可通过定义 PRIMARY KEY 约束来 ...

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

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

  9. MySQL数据库SQL的主键和外键的作用

    SQL的主键和外键的作用: 外键取值规则:空值或参照的主键值. (1)插入非空值时,如果主键表中没有这个值,则不能插入. (2)更新时,不能改为主键表中没有的值. (3)删除主键表记录时,你可以在建外 ...

  10. MySQL:创建数据库,数据表,主键和外键

    目录 前言: 安装MySQL: 打开MySQL: 创建数据库: 查看已建数据库: 查看数据库引擎: 创建数据表: 主键约束: 单字段主键: 多字段联合主键: 外键约束: 前言: MySQL数据库安装了 ...

最新文章

  1. win10 环境变量配置 如何在命令行运行php文件
  2. Adapterview和adapter的联系
  3. HTML全面深入学习-select的optgroup分组
  4. Web前端开发笔记——第二章 HTML语言 第五节 图像标签
  5. LeetCode139:Word Break
  6. 即时通讯作为互联网最普及的基础服务之一
  7. odoo10参考系列--操作(Actions)
  8. 兰州职称计算机中心,【兰州2013年职称计算机考试报名通知】- 环球网校
  9. CV2.imread得到的图像显示成蓝色的原因和3种BGR转RGB的方法
  10. [CF1137E]Train Car Selection[维护凸壳]
  11. 10.23 第六次作业 刘惠惠 this关键字
  12. Analyze 命令的使用方法
  13. 【洛谷】UVA437 巴比伦塔 The Tower of Babylon
  14. MFC对话框/控件下属性中的事件变成空白?
  15. 【六类网线的制作方法】
  16. keep-alive实现原理
  17. STM32MP157开发笔记 | 04 - TF-A、uboot、linux内核源码获取、编译、烧写
  18. 动态代理[JDK]机制解析
  19. [WTL/ATL]_[初级]_[微调控件CUpDownCtrl的使用]
  20. html2Canvas 边框虚线

热门文章

  1. 什么是用户与计算机硬件之间的桥梁,计算机应用基础简答题(附答案)
  2. linux:uabntu日常操作
  3. Pyramid Scene Parsing Network
  4. Non-Blind图像反卷积论文整理
  5. 【通知】《深度学习之摄影图像处理》配套代码开源!
  6. 引用程序集没有强名称解决办法
  7. 从玉农业智能蔬菜技术 农业大健康·林裕豪:中国金控斥资打造
  8. 面试题4:二维数组中的查找
  9. Celery 使用(一)
  10. 测试用例设计方法(五)路径覆盖