数据库

只谈情不闲聊 提交于 2020-03-09 13:01:01

表连接:

两个表通过共有的某一列,根据其数值关系(一般是相等)进行联合,把一个表的一行所带的相应列附加到另一个表上。

 

业务上看,是添加了相应列的延伸内容,加的内容是一个对象在外表所对应的属性(类似点击一个key,看到其相应的属性,3d透视角度)。一对多即是一个外键附加了一堆属性

 

多表连接

先两个表连接,再连接其他表。即某一行所带的列不停的增加,某个属性(key)所带的值不停的附加

 

一对一,一对多,多对多

一对一:一个表里的key只出现一次,另一个表里对应的key也只有一行

一对多:一个表里的key只出现一次,另一个表里对应的key出现在多行。一对多的联合不会使得行数增加,因为一个表里已经有多个行了,联合和只是把key做主键那个表的内容复制到每一行

多对多:一个表里的key出现在多行,另一个表里对应的key也出现在多行。联合后是m*n

 

外键,主键

如果一个key在一个表里是外键,那么就是一对多

如果一个key在一个表里是主键键,那么就是一对一

 

内连接,外连接,左连接,右连接

内连接:两个表联合,只取key值相等的行连接

左连接:两个表联合,如果左边的key在右边的表找不到,左边的key所在的那一行保留,右边的列对应的值都是空

右连接:两个表联合,如果右边的key在左边的表找不到,右边的key所在的那一行保留,左边的列对应的值都是空

外连接:两个表联合,左右两表的key对应行都要保留,如果有key一致,联合在一起(消一行),否则保留,缺失的表的列值为空

 

一对几和怎么连接没有关系,虽然都是多产生几行,一个是乘法式的增加,一个是加法式的增加

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!