实验案例二:多表查询

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表,表中内容如下图:

实验案例二:多表查询_第1张图片

3 、需求描述。

1、在products表和sales表中查询产品的名称、种类、成本、销售地点和销售价格。

2、在products表和sales 表中查询销往海南的产品名称、种类、成本和销售价格。

3、在products表和sales表中查询销往北京的蔬菜名称、种类、成本和销售价格。

4、实验步骤。

根据以下命令创建新表sales,并且插入相应的数据。

实验案例二:多表查询_第2张图片

1、使用以下命令使用左联接的方式将两个的不同列联接到了一起。

实验案例二:多表查询_第3张图片

命令参考:

select products.名称 名称,products.种类 种类,products.成本 成本,
sales.销售地点 销售地点,sales.销售价格 销售价格
from products left join sales on products.名称=sales.名称
 

2、在products表和sales 表中查询销往海南的产品名称、种类、成本和销售价格。

实验案例二:多表查询_第4张图片 命令参考:

select products.名称 名称,products.种类 种类,products.成本 成本,

sales.销售价格 销售价格
from products left join sales on products.名称=sales.名称
where 销售地点='海南'

 3、在products表和sales表中查询销往北京的蔬菜名称、种类、成本和销售价格。

实验案例二:多表查询_第5张图片

命令参考:

select products.名称 名称,products.种类 种类,products.成本 成本,

sales.销售价格 销售价格
from products inner join sales on products.名称=sales.名称
where 销售地点='北京' and 种类='蔬菜'

你可能感兴趣的:(数据库(SQL,Server,2016),数据库)