怎么区分关系型数据库里面的主表和从表?

怎么区分主从

        最近在学MySQL,然后学到主键和外键。在MySQL中,外键约束(Foreign Key Constraint)用于确保表中的数据关系的完整性。外键约束是一个字段或一组字段,它们引用了另一个表中的主键或唯一键,从而创建了两个表之间的关联。

       想要使用外键约束,需要满足以下条件:

        1.定义主表和从表:

  • 主表包含要引用的列,也称为父表(Parent Table)或主键表(Primary Key Table)。
  • 从表包含外键列,也称为子表(Child Table)或外键表(Foreign Key Table)。

       PS:在定义从表时,需要在外键列上添加外键约束。

        然后对这个主表从表有点模糊概念,可能我比较笨光看文字不是很能体会到。我就后面看了几篇文章了解清楚,就写也一篇记录一下。

        假设有现在有2个表,读者(reader)和读者归属单位(reader_affiliation),结构如下:

CREATE TABLE
IF
	NOT EXISTS reader_affiliation (
		affiliation_id INT AUTO_INCREMENT PRIMARY KEY COMMENT '归属单位ID',
		college VARCHAR ( 255 ) NOT NULL COMMENT '学院',
		major VARCHAR ( 255 ) NOT NULL COMMENT '专业',
		class VARCHAR ( 255 ) NOT NULL COMMENT '班级',
	) COMMENT = '读者归属单位表';

/*读者表*/
CREATE TABLE
IF
	NOT EXISTS reader (
		reader_id varchar(255) PRIMARY KEY COMMENT '读者ID',
		reader_pass VARCHAR ( 255 ) NOT NULL COMMENT '密码',
		affiliation_id INT COMMENT '归属单位ID',
		FOREIGN KEY ( affiliation_id ) REFERENCES reader_affiliation ( affiliation_id ),
	) COMMENT '读者表';

        上面的读者就是从表,读者归属单位就是主表,引用别的表主键为外键的就是从表,被引用的是主表,也可以简单粗暴的理解为:有外键的是从表 没有的是主表。

        B表的外键与A表的主键相对应,则A表为主表,B表为从表。上面的例子中B表就是读者表,A表就是读者归属单位表。

数据操作

        删除:

  • 主表被引用当外键的数据列,是不能删除的会报错,
  • 子表就能删除。

        列如:假设上面的读者表引用了读者归属单位表reader_id为1的数据,此时读者归属单位表就不能删除reader_id为1的数据了,当然也不能修改reader_id值为其他,因为这条数据已经被引用了。

        修改:

  • 也是同删除操作一样,主表是不能修改已经被引用的数据列的;
  •  子表就能随便改,但是前提是,外键的值要存在,不存在也会报错的。但是能为NULL

        例如:假设例子中的读者归属单位只存在reader_id值为1一条数据,你将读者表中的reader_id修改为2,那么是不被允许的。

        插入:

  • 向主表中插入一条新的记录,不会对从表现有的数据造成影响;
  • 向从表中插入一条新的记录,要看外键对应的属性值在主表中是否存在,若存在就能插入,不存在的话就不能插入,不插入那个字段就为NULL。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值