SQL的表间关系

本文详细阐述了数据库中表间关系的含义及其类型,包括一对一、一对多和多对多关系,并重点介绍了如何通过设置主键和外键建立表间联系。进一步探讨了主外键在数据完整性、一致性及多表查询方面的关键作用,同时提供了在数据插入、删除时遵循的规则。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、表间关系的含义:

同一个数据库中,不同表中的数据之间都存在一种关系,这种关系将数据库里各表中的每条数据记录都和数据库中唯一的主题相联系,使得对每一个数据的操作都成为数据库的整体操作。

2、表间关系的类型:
* 一对一
* 一对多
* 多对多  
 3、建立表间关系的目的:
* 保证数据的完整性
-> 表间关系的建立使主表和从表之间建立数据约束关系,防止输入错误的数据;
* 保证数据的一致性
-> 当存在多个表的时候,通过建立主表和从表的关系,可以在主表更新时,从表自动更新,省去手动更新;
* 方便多表查询
-> 方便连接两个或多个表,一次能查找到多个相关数据。
二、主外键物理表
在第3章里我们介绍了主键的设置和选择,为了建立表间关系,还需要在子表里设置外键。
1、外键的作用
外键引用另外一个数据表的某条记录,以此在两个表之间建立联系。
外键是子表里的一个字段,引用父表(主表)里的主键。
* 外键列类型尽可能与主键列类型保持一致
* 外键列应该加上 NOT NULL 

 2、外键约束
外键约束是确保表与表之间引用完整性的主要机制。

三、主外键物理表的数据插入删除规则
主表和从表里的数据在插入删除时,要遵循以下规则:
(1)当主表中没有对应的记录时,不能将记录添加到子表
上面的例子里学员成绩表 score 中不能出现在学员信息表 student 中不存在的学号。
(2)不能更改主表中的值而导致子表中的记录孤立
把 student 表中的学号改变了,score 表中的学号也应当随之改变。
(3)子表存在与主表对应的记录,不能从主表中删除该行
不能把有成绩的学员删除了。
(4)删除主表前,先删子表
先删除学员成绩表 score、后删除学员信息表 student。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值