用SQL表达内连接和外链接

前置:https://blog.csdn.net/jaihk662/article/details/80072281

https://blog.csdn.net/jaihk662/article/details/80136375

注:所有的下划线+斜体语句都是非必须语句


左外连接:

SQL语句:select…  from 表1 natural  left outer join 表2

on 连接条件 或 using (公有列1, 公有列2……)

文字描述:连接后,表1的任何元组t都会出现在结果表中,若表2中有满足连接条件的元组s,  则t与s连接,否则t与空值元组连接

其中left outer join表示左外连接,属于连接类型,而斜下划线上的语句都为连接方式

连接方式有以下三种:

  • natural:自然连接,出现在结果关系中的两个连接关系的元组在公共属性上取值相等,且公共属性只出现一次
  • on 连接条件出现在结果关系中的两个连接关系的元组取值满足连接条件,且公共属性出现两次
  • using (列名…)(列名1, 列名2…) 是两个连接关系的公共属性的子集,元组在(列名1, 列名2…) 上取值相等,且(列名1, 列名2…) 只出现一次

对于左外连接,上述三种连接方式必用一种,并且注意natural的位置和on/using的位置不一样

示例:



右外连接:

SQL语句:select…  from 表1 natural  right outer join 表2

on 连接条件 或 using (公有列1, 公有列2……)

其余和左外连接一样

示例:



全外连接:

SQL语句:select…  from 表1 natural  full outer join 表2

on 连接条件 或 using (公有列1, 公有列2……)

其余和左外连接一样,但是部分DBMS(Mysql等)不支持full outer join操作

→可以用union+左/右外链接来实现



内连接:

SQL语句:select…  from 表1 natural  full outer join 表2

on 连接条件 或 using (公有列1, 公有列2……)

对于外连接,上述三种连接方式必用一种,但是内连接如果一种不用就相当于笛卡尔积


总结:



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值