一、认识多表查询:
前面讲述过的所有查询都是基于单个数据库表的查询。如果一个查询需要对多个表进行操作,就称为联接查询,联接查询的结果集或结果称为表之间的联接。
联接查询实际上是通过各个表之间共同列的关联性来查询数据的,它是关系数据库查询最主要的特征。
二、表联接类型:
表联接类型可以分为内联接.外联接和交叉联接等。
1.内联接
内联接〈 inner join)是最常用的-一种联接方式,只返回两个数据集合之间匹配关系的行,将位于两个互相交叉的数据集合中重风部分以内的数据行联接起来。
内联接使用比较运算符进行表间某(些)列数据的比较操作.并列出这些表中与联接相匹配的数据行。
2.外联接
外联接(outer join〉是对内联接的扩充.除了将两个数据集合中重复部分以内的数据行联接起来之外,还可以根据要求返回左侧或右侧表中非匹配的数据或全部的数据。
外联接分为以下几种。
3. 左外联接
左外联接〈lieft join或left outer join)的结果集包括左表的所有行。如果左表的某一行在右表中没有匹配行,则右表返回空值,否则返回相应值。
4. 右外联接
右外联接(right join或right outer join)是左外联接的反向联接.将返回右表的所有行。如果右表的某一行在左表中没有匹配行.则左表返回空值,否则返回相应值。
5. 全联接/完整外联接
全联接/完整外联接〈(full join 或full outer join)将返回左表和右表中的所有行。当某一行在另一个表中没有匹配行时.另一个表返回空值,否则返回相应值。
三、实验
3.1 表格:
3.2 需求描述:
在products表和sales表中查询产品的名称.种类.成本.销售地点和销售价格。
select products.名称 名称products ,products.种类 种类products,
products.成本 成本products,sales.名称 名称sales,sales.销售地点 销售地点sales,
sales.销售价格 销售价格sales
from products left join sales on products.名称=sales.名称
在products表和sales表中查询销往海南的产品名称、种类.成本和销售价格。
select products.名称 名称products ,products.种类 种类products,
products.成本 成本products,sales.名称 名称sales,
sales.销售价格 销售价格sales
from products left join sales on products.名称=sales.名称
where 销售地点='海南'
在products表和sales表中查询销往北京的蔬菜名称、种类.成本和销售价格。
select products.名称 名称products ,products.种类 种类products,
products.成本 成本products,sales.名称 名称sales,
sales.销售价格 销售价格sales
from products inner join sales on products.名称=sales.名称
where 销售地点='北京'and 种类='蔬菜'