主外键和外键约束

主键

主键(primary key):一列(或一组列),其值能够唯一区分表中每个行 。

外键

外键(foreign key) 外键为某个表中的一列,它包含另一个表的主键值,定义了两个表之间的关系

什么是外键约束

右边的DepartmentID是外键。 外键约束是指用于在两个表之间建立关系,需要指定引用主表的哪一列。

On Delete

On Delete可能取值如上图为:No Action, Cascade,Set Null, Restrict属性。 1. No Action / Restrict 当取值为No Action或者Restrict时,则当在父表(主表)(即外键的来源表)中删除对应记录时,首先检查该记录对应的从表是否有对应外键,如果有则不允许删除。 2. Cascade(级联) 当取值为Cascade时,则当在父表(主表)(即外键的来源表)中删除对应记录时,首先检查该记录是否有对应外键,如果有则也删除外键在子表(即包含外键的表)中的记录。(一起删除) 3. Set Null 当取值为Set Null时,则当在父表(即外键的来源表)中删除对应记录时,首先检查该记录是否有对应外键,如果有则设置子表中该外键值为null(不过这就要求该外键允许取null)。

On Update

On Update可能取值如上图为:No Action, Cascade,Set Null, Restrict属性。(更新的是外键的值

  1. No Action / Restrict 当取值为No Action或者Restrict时,则当在父表(即外键的来源表)中更新对应记录时,首先检查该记录是否有对应外键,如果有则不允许更新
  2. Cascade(级联) 当取值为Cascade时,则当在父表(即外键的来源表)中更新对应记录时,首先检查该记录是否有对应外键,如果有则也更新外键在子表(即包含外键的表)中的记录。
  3. Set Null 当取值为Set Null时,则当在父表(即外键的来源表)中更新对应记录时,首先检查该记录是否有对应外键,如果有则设置子表中该外键值为null(不过这就要求该外键允许取null)。

理解示例

表结构

学生表

具体分析

以上面的成绩表为例,学号和课程号是成绩表的主键,那么学号是成绩表的外键还是学生表的外键?当然是成绩表的外键,因为学号是学生表的主键呀,怎么可能是外键?同理成绩表课程号也应该是成绩表的外键。 其实,外键主要建立与其他表的联系,如果我们想知道成绩表中某一行成绩是谁考的,啥性别,在哪个班级,就可通过成绩表的外键学号与学生表建立一种关系。

templet 显示字段外键对应名_主外键和外键约束相关推荐

  1. 主键主键外键和索引_主键和外键的目的/用途是什么?

    主键主键外键和索引 Primary and foreign keys are a way in which to constrain related data together to ensure d ...

  2. 如何分析堆外内存使用情况_堆上与堆外的内存使用情况

    如何分析堆外内存使用情况 总览 最近有人问我在Java中使用堆内存的好处和智慧. 面临相同选择的其他人可能会对这些答案感兴趣. 堆外内存没什么特别的. 线程堆栈,应用程序代码,NIO缓冲区都在堆外. ...

  3. 关闭笔记本显示器指定组合键才能打开_八大品牌笔记本Fn组合键大全

    掌握笔记本Fn组合键,对全面了解笔记本电脑的功能至关重要,这些组合键能够让你轻松的使用笔记本.不同品牌的电脑Fn组合键有所不同.下面分别介绍联想.华硕.戴尔.三星.惠普.东芝.NEC.IBM八大品牌笔 ...

  4. 兀键和6键怎么判断_你们不会的大π键(高三党,基础较好)

    高考中的大π键 物质结构与性质在高考中是以选考题的形式来考查的,考题中经常会有一些信息题来加大考题难度,提高区分度.共价键的类型按成键方式可分为σ键和π键.大π键作为π键概念的延伸与拓展,就常见于信息 ...

  5. python 字典键值重复_浅谈python字典多键值及重复键值的使用

    在python中使用字典,格式如下: dict={ key1:value1 , key2;value2 ...} 在实际访问字典值时的使用格式如下: dict[key] 多键值 字典的多键值形式如下: ...

  6. templet 显示字段外键对应名_二开案例.单据插件.隐藏或禁用维度关联字段(辅助属性)固定列...

    [应用场景]维度关联字段(辅助属性)使用固定列进行编辑时,会将辅助属性设置的所有列铺开在单据体表格中,但某些物料并不需要编辑每一个固定列,这些不需要的列可以隐藏起来. [案例演示]采购订单明细信息,通 ...

  7. mysql 创建外键索引吗_索引-MySQL无法创建外键约束

    我在为mysql数据库中的现有表创建外键时遇到一些问题. 我有experiment表: +-------------+------------------+------+-----+--------- ...

  8. c语言程序电子琴21个音符,14键电子琴曲谱_小电子琴有14个键音符怎么标

    小孩子电子琴有19颗键怎么标音符 两个黑键一起的那一组,下面的三个白键是do re mi三个黑键一起的那一组,下面对应的白键是fa so la qi往后依此类推~都一样...说的够明白了吧!我电脑卡没 ...

  9. 游戏屏幕外渲染黑屏_看Nintendos在屏幕外的精灵渲染故障

    游戏屏幕外渲染黑屏 While I was capturing some game footage from Zelda II, I noticed a strange little glitch. ...

最新文章

  1. python调用什么函数实现对文件内容的读取_如何使用python语言中的方法对文件进行读写操作...
  2. ACL 2019 | 基于知识增强的语言表示模型,多项NLP任务表现超越BERT(附论文解读)...
  3. sun服务器清理内存日志_SUN 服务器消除黄灯告警灯详情教程
  4. time datetime 模块
  5. 关于Exchang server 2010 MCITP
  6. 《背影》——朱自清(目录导航测试)
  7. Springboot整合thymeleaf模板
  8. zz 聊聊并发(一)
  9. python自动爬取更新电影网站_python爬取电影网站信息
  10. ssh scp不用输入密码
  11. python有关数据结构问题
  12. 联想yoga13装win7步骤介绍
  13. bp神经网络反向传播推导,bp神经网络的传递函数
  14. 蓝桥杯质数c语言,2017年第八届蓝桥杯C/C++程序设计本科B组省赛 等差素数列(结果填空)(素数筛)...
  15. 雷锋科普:小米M2之芯高通APQ8064芯片组解析
  16. STC12C5A60S2自带A/D转换器的使用
  17. [JavaSE] 二维数组详解【静态初始化和动态初始化区别】—Day13
  18. SQL Server with ties 语句
  19. 海义QQ群共享下载者的一些图例使用步骤教程
  20. python,调出黑白局部色彩照片,快去使用吧!

热门文章

  1. mysql 10天以前_MySQL前10天7天前
  2. 7.1 pdo 宝塔面板php_运维干货分享:centos7下源码编译安装php-7.1.5(脚本)
  3. mysql 视图锁_Oracle数据库的锁类型及相关视图
  4. python中的map函数返回一个地址_python中的map函数
  5. 电脑应用程序错误怎么办_电脑Windows出错信息解析及解决方案
  6. Mysqldump: Got Errno 32 On Write 和ambiguous redirect错误的解决办法
  7. Fragment学习1--生命周期
  8. php 获取当前url hash,PHP hash 接口对接
  9. Java的ATM界面任务台选择同时有文本和数据库登陆注册
  10. tnsping通oracle连不上,TNS配置正确,而tnsping不通