9.表关系(外键)

外键: 如果一种表中的内容过于繁琐,我们可以将其划分成多张表,而外键就是通过一张表的字段可一查询到另一张表,多表创建是,应先创建表的基本字段,最后再添加外键字段

表关系

1. 一对一
2. 一对多
3. 多对多
4. 没有关系

一对一表关系

 一对一的外键字段可以建在任何一张表中,但是,推荐建在查询频率较高的一张表中

一对多表关系

 一对多的表关系外键字段建在多的一方

多对多表关系

多对多的外键字段需要建立第三张表来存储

外键约束

1. 在创建表的时候,应该先创建被关联表(没有外键字段的表),
2. 在录入数据的时候,应该先录入被关联表(没有外键字段的表),
3. 在录入数据的时候,应该录入被关联表中已经存在的值,
4. 如果对被关联表中的数据进行修改和删除的时候,需要把关联表中的数据也跟着修改或者删除(不现实)
# 需要使用以下方式创建表关系:
   on update cascade # 级联更新
   on delete cascade # 级联删除
   但是,由于创建了外键关系和级联更新级联删除,那么,两张表之间就有了强制的约束关系,这样就增加了表与表之间的强耦合度;
   所以,以后实际项目中,我们大多数不建立这种强耦合关系,我们使用的是建立逻辑意义上的关系

多表查询

子查询

子查询就是一条SQL语句的执行结果当成另一条SQL语句的执行条件,即分布操作

连表查询

连表查询就是把多张实际存在的表按照表关系连成一张虚拟表(不是实际存在的表,而是临时在内存中存的)

连表语法:
inner join  # 内连接,数据只取两张表中共有的数据
left join  # 左连接,数据以左表为准,展示左表所有的数据,右表没有的数据使用NULL填充
right join # 又连接,数据以右表为准,展示右表所有的数据,左表没有的数据使用NULL填充
union  # 连接多条SQL语句执行的结果
posted @ 2023-07-14 20:30  苙萨汗  阅读(66)  评论(0)    收藏  举报