MYSQL多表查询

数据库 waitig 492℃ 百度已收录 0评论

表与表之间的关系说的就是表与表数据之间的关系

1. 一对多

常见实例:班级与学生,部门与员工

一对多建表原则:在从表(多方)创建一个字段,字段作为外键指向主表(一方)的主键。

2. 多对多

常见实例:学生与课程,人与角色

多对多建表原则:需要创建第三张表,中间表中至少两个字段,这两个字段分别作为键指向各自一方的主键。(就是将一个多对多,拆分成两个多对多)。

 

 

 

声明外键约束:

 

实用外键得主要目的是保持数据的完整性。

两种建表原则

1外键唯一:主表得主键和从表的外键唯一,形成主外键关系。

2. 外键是主键:主表得主键和从表得主键形成主外键关系。

注意事项

1. 从表外键不能添加主表主键不存在的记录。

2. 主表不能删除从表中不存在的记录。

 

 

多表查询:

 

 

 

1、内联接(典型的联接运算,使用像 =  或 <> 之类的比较运算符)。包括相等联接和自然联接。     
内联接使用比较运算符根据每个表共有的列的值匹配两个表中的行。例如,检索 students和courses表中学生标识号相同的所有行。   
    
2、外联接。
外联接可以是左向外联接、右向外联接或完整外部联接。     
FROM子句中指定外联接时,可以由下列几组关键字中的一组指定:     
1)LEFT  JOIN或LEFT OUTER JOIN     
左向外联接的结果集包括  LEFT OUTER子句中指定的左表的所有行,而不仅仅是联接列所匹配的行。如果左表的某行在右表中没有匹配行,则在相关联的结果集行中右表的所有选择列表列均为空值。       
2)RIGHT  JOIN 或 RIGHT  OUTER  JOIN     
右向外联接是左向外联接的反向联接。将返回右表的所有行。如果右表的某行在左表中没有匹配行,则将为左表返回空值。       
3)FULL  JOIN 或 FULL OUTER JOIN
完整外部联接返回左表和右表中的所有行。当某行在另一个表中没有匹配行时,则另一个表的选择列表列包含空值。如果表之间有匹配行,则整个结果集行包含基表的数据值。


本文由【waitig】发表在等英博客
本文固定链接:MYSQL多表查询
欢迎关注本站官方公众号,每日都有干货分享!
等英博客官方公众号
点赞 (0)分享 (0)