SQL中表的连接

在SQL Server中表之间的连接分为自然连接,内连接,外连接。

自然连接与内连接类似,唯一的区别是,内连接不会去掉重复的列,而自然连接会自动去掉重复的列,例如这里做一个简单的例子。

表SAge(cName,iAge),                         表SSex(cName,bSex)

     

1、先进行内连接  

1 select * from ssex  inner join sage on ssex.cname=sage.cname

    运行的结果为:

2、进行自然连接(不知道为什么我的数据库版本运行不了natural join  版本问题吧)

    select * from ssex  natural join sage

   预期的结果应该如图:

3、进行外连接,外连接分为左外连接(left [outer] join),右外连接(right [outer] join)和全外连接(full [outer] join)   tips:这里中括号[]里的内容可写可不写。

(1)A left join B 是将A的内容全列出来,满足条件的B的内容列出来,没有的地方为NULL

select * from ssex  left join sage on ssex.cname=sage.cname
或者
select * from ssex  left outer join sage on ssex.cname=sage.cname

运行结果均为:

(2)A right join B 是将B的内容全列出来,满足条件的A的内容列出来,没有的地方为NULL

select * from ssex  right join sage on ssex.cname=sage.cname
或者:
select * from ssex  right outer join sage on ssex.cname=sage.cname

运行结果均为:

(3)A full join B 是将A,B的内容都列出来,满足条件的合成一行不满足条件的用NULL代替,看例子:

select * from ssex  full outer join sage on ssex.cname=sage.cname
或者
select * from ssex  full  join sage on ssex.cname=sage.cname

运行结果为:

以上为所有的内容,不知道这样对概念有没有清晰一点呢。

原文地址:https://www.cnblogs.com/huang1990/p/3023708.html