MySQL-实体映射关系和连接查询

 一 数据库实体的映射关系

1. 一对一:学生表和学生档案表,一个学生只有一个对应的档案。

2. 一对多/多对一:一个球队友多个球员(一对多),多个球员属于一个球队(多对一)

3. 多对多:一个学生可以选多门课程,一门课程可以被多个学生选修。

二 连接查询

1. 交叉连接 cross join 

  建表如下:

  

  结果:等于笛卡尔积,行数=表A行数*表B行数,列数=select 的列数

  

 

2. 内连接:...a inner join b on a.aa = b.bb...

  建表如下

  

 

   结果:只取符合on 过滤条件的结果。结果行数与连接的表格行数没有半毛钱关系,可>/=/<。列数=列数=select 的列数

 

 3. 左外连接:...a left join b on a.aa = b.bb...

  使用 2.内连接 的表

  结果:行数>=左表行数,列数=select 的列数。左表的记录都在(且可能重复),当右表没有与左边对应的记录时,则置NULL。

 

如下,将左右表调换,on条件不变,输出的结果不一样。

 

 

 

 

 

posted on 2020-12-17 13:57  挣扎的发际线  阅读(277)  评论(0编辑  收藏  举报

导航