1、表联接类型。
表联接类型可以分为内联接.外联接和交叉联接等。
1.内联接。
内联接〈 inner join)是最常用的-一-种联接方式,只返回两个数据集合之间匹配关系的行,将位于两个互相交叉的数据集合中重叠部分以内的数据行联接起来。
内联接使用比较运算符进行表间某(些)列数据的比较操作,并列出这些表中与联接相匹配的数据行。
2.外联接。
外联接(outer join)是对内联接的扩充.除了将两个数据集合中重复部分以内的数据行联接起来之外,还可以根据要求返回左侧或右侧表中非匹配的数据或全部的数据。
外联接分为以下几种。
【1】左外联接
左外联接(left join 或left outer join)的结果集包括左表的所有行。如果左表的某一行在右表中没有匹配行,则右表返回空值,否则返回相应值。
【2】右外联接
右外联接〈right join或right outer join)是左外联接的反向联接.将返回右表的所有行。如果右表的某一行在左表中没有匹配行.则左表返回空值,否则返回相应值。
【3】全联接/完整外联接
全联接/完整外联接(full join 或full outer join)将返回左表和右表中的所有行。当某一行在另一个表中没有匹配行时,另一个表返回空值,否则放回相应值。
3.交叉联接。
交叉联接就是表之间没有任何关联条件,查询将返回左表与右表挨个联接的所有行,就是左表中的每行与右表中的所有行再―—组合,相当于两个表“相乘”。
因为交叉联接应用场合较少.所以本课程不过多进行介绍.也不要求熟练掌握,如果感兴趣可以查阅相关资料。
2、实验环境。
某公司有一台已经安装了SQL Server 2016的服务器,class数据库中包含products表和sales表,表中内容如下图:
3 、需求描述。
1、在products表和sales表中查询产品的名称、种类、成本、销售地点和销售价格。
2、在products表和sales 表中查询销往海南的产品名称、种类、成本和销售价格。
3、在products表和sales表中查询销往北京的蔬菜名称、种类、成本和销售价格。
4、实验步骤。
根据以下命令创建新表sales,并且插入相应的数据。
1、使用以下命令使用左联接的方式将两个的不同列联接到了一起。
命令参考:
select products.名称 名称,products.种类 种类,products.成本 成本,
sales.销售地点 销售地点,sales.销售价格 销售价格
from products left join sales on products.名称=sales.名称
2、在products表和sales 表中查询销往海南的产品名称、种类、成本和销售价格。
命令参考:
select products.名称 名称,products.种类 种类,products.成本 成本,
sales.销售价格 销售价格
from products left join sales on products.名称=sales.名称
where 销售地点='海南'
3、在products表和sales表中查询销往北京的蔬菜名称、种类、成本和销售价格。
命令参考:
select products.名称 名称,products.种类 种类,products.成本 成本,
sales.销售价格 销售价格
from products inner join sales on products.名称=sales.名称
where 销售地点='北京' and 种类='蔬菜'