阅读 60

数据库左外连接和右外连接,mysql内连接和左连接的区别

数据中的连接join分为内连接、自然连接、外连接,外连接分为左外连接、右外连接、全外连接

表1

当然,所有这些分类都是基于连接的,从两个表中记录的直积中选择满足连接的记录。 笛卡儿积简单地说,一个表中的记录和另一个表中的记录匹配一个记录。 也就是说,如果表a中有三条记录,则表b中也应该有三条记录,经过笛卡尔运算后应该有3*3即9条记录。 下表:

表21 .自然连接(natural join )自然连接是一种特殊的等价连接,在两个关系表中要比较的必须是相同的属性列,不需要添加连接条件,需要从结果中删除重复的属性列。

sql语句: Select …… from表1 natural join表2

结果:

2 .内连接(inner join )内连接基本上与自然连接相同,但自然连接要求比较同名的属性列,而内连接中两个属性列不必同名。 可以使用using或on指定两列中的字段相同的连接条件。

sql语句: select . from表1 inner join表2 on表1.A=表2.E

结果:

少了一个元组(1、2、3、8、9、1 ) )。

如果连接时某些属性值不同,则会丢弃这些元组。 那么,如何保存这些丢失的信息呢? 外部连接解决了相应的问题。 外部连接包括左外部连接、右外部连接和全外部连接。 外连接必须在using或on中指定连接条件。

3 .左外连接(left outer join )左外连接对两个表进行自然连接,只在结果集中保留左表丢弃的内容,并在右表的相应列中填充null。

sql语句: select . from表1 left outer join表2 on表1.C=表2.C

结果:

4 .右外连接(rignt outer join )右外连接对两个表进行自然连接,只将右表丢弃的内容保留在结果集中,用空值填充左表中的相应列。

选择……from表1 rignt outer join表2 on表1.C=表2.C

结果:

5 .全外连接(full join )全外连接对两个表进行自然连接,只将左表和右表都要舍弃的内容保留在结果集中,并在对应的列中填入null。

选择……from表1 full join表2 on表1.C=表2.C

结果:


文章分类
代码人生
文章标签
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐