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条件不变,输出的结果不一样。