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

🏛️ bt365体育投注官网 ⏳ 2025-07-09 00:32:01 👤 admin 👁️ 1616 💎 292
怎么区分关系型数据库里面的主表和从表?

怎么区分主从

最近在学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。

相关掠夺

bt365体育投注官网
友情的复杂之旅:解读友情淡漠的原因

友情的复杂之旅:解读友情淡漠的原因

🗓️ 07-07 👁️ 428
bt365体育投注官网
世界最烧钱比赛!2017迪拜赛马世界杯3月25开幕

世界最烧钱比赛!2017迪拜赛马世界杯3月25开幕

🗓️ 07-06 👁️ 9324