sql主从表的区分

主键约束比较好理解,就是主键值不能为空且不重复,已经强调好多次,所以这里重点记录对外键约束的学习。

主表与从表

若同一个数据库中,B表的外键与A表的主键相对应,则A表为主表,B表为从表。
就是两个表有相同的字段,这个字段在那个表是主键,那个表就是主表

假设学生表(学号,姓名,性别,专业号),专业表(专业号,专业名称),则学生表中的专业号为学生表的外键,其与专业表中"专业号"属性相关联,因此,专业表为主表,学生表为从表。

外键约束

外键约束是相关联的两个表之间的数据操作约束,包括删除,插入,更新等。理论上,在对关联数据表进行数据操作时,只改其一,不改其二,不符合关系数据库的参照完整性。

(1)更新

更新主表的某一个记录的主键值(其实,这种操作是不被允许的),系统会自动检测该主键值在从表中是否存在,若存在,则需要明确操作(一般默认为不被允许);

更新从表的某一个记录的外键值,系统会自动检测欲更新的外键值在主表中是否存在,若不存在,则需要明确操作(一般默认为不被允许);

(2)插入

向主表中插入一条新的记录,不会对现有从表造成影响;

向从表中插入一条新的记录,系统会检测外键对应的属性值在主表中是否存在,若存在,否则需要明确操作(一般默认为不被允许);

(3)删除

从主表中删除一条记录,系统会自动检测该记录的主键值是否在从表中存在,若存在,则需要明确操作(一般默认为不被允许);

从从表中删除一条记录,不会对主表造成影响;

相关推荐
gmaajt4 分钟前
Golang怎么读取环境变量_Golang如何用os.Getenv获取系统环境变量【基础】
jvm·数据库·python
2601_949194266 分钟前
Redis的安装教程(Windows+Linux)【超详细】
linux·数据库·redis
傻啦嘿哟11 分钟前
Python 文件批量处理:重命名/备份/同步运维实战指南
linux·数据库·github
m0_5964063711 分钟前
CSS复杂组件如何拆解_使用Sass将组件逻辑细化为小文件
jvm·数据库·python
cyber_两只龙宝11 分钟前
【Oracle】 Oracle之SQL的子查询
linux·运维·数据库·sql·云原生·oracle
数智化管理手记28 分钟前
异常反复出现?精益生产生产异常闭环的三大常见问题场景
大数据·数据库·低代码·制造·精益工程
2301_8166602134 分钟前
golang如何实现SSRF防护策略_golang SSRF防护策略实现方案
jvm·数据库·python
流年如夢38 分钟前
自定义类型进阶:联合与枚举
java·c语言·开发语言·数据结构·数据库·c++·算法
解救女汉子39 分钟前
CSS3 按钮悬停时显示手型光标(cursor- pointer)的正确写法
jvm·数据库·python
csdn2015_1 小时前
spring boot 启动的时候将数据库里的分类信息写入redis
数据库·spring boot·redis