<html>
<head><title>第十四章 外连接</title></head>
<style>
p{font-size:1cm;color:red;align:center}
</style>
<body>
<pre>
<p>第十四章 外连接</p>
内连接可以删除原表中的一些行。外连接可以保留这些行中的一部分。
<p>第一节 外连接派生于内连接</p>
外连接有三种类型:左外连接,右外连接,全外连接
左外连接 :添加回从第一个表中删除的所有行。null被入入其他表的列中。
右外连接:添加从第二个表中删除的所有行。第一个表匹配行所在的列设为null.
全外连接 :添加回了从两个表中删除的所有行。
左外连接:
select a.*,b.*
from twos a
left outer join threes b
on a.number_2=b.number_3
ouder by a.number_2;
右外连接 只是把左外连接中的left改为right
全外连接是把左外连接和右外连接用union连接起来。
union简介
两个表将一个表的行添加到另一个表中,同时两个两被组合到一起,形成一个单表。两个表的列数必须相同,而且这些列的数据类型的顺序也必须相同。重复的行将被删除。只能有一个order by子句。而且 它必须放在最后一行。列别名在第一个select语句中指定。
<p>按顺序全外连接</p>
任务:创建twos表和threes表的全外连接,创建一个按照数字顺序排列行的列。
select a.*,
b.*,
nz(a.number_2,b.number_3)*1 as sort_ort_order
from twos a
left outer join threes b
union
select c.*,
d.*,
nz(c.number_2,d.number_3)*1
from twos c
right outer join threes d
on c.number_2=d.number_3
order by sort_order;
任务:表exl203a包含有从1到100的数,其中缺少一部分数字,也有一部分数字出现多次。找出所有缺少和重复的数字。并计算每个这样的数字出现的次数。对缺少的数字计算 他们出现的次数
select a.n,
b.n,
count(b.n)
from numbers_1to_100 a
left outer join ex1203a b
on a.n=b.n
group by a.n,
b.n
having not(count(b.n)=1)
order by a.n;
用两列或多列进行比较。
找出secl412a中有,secl412b表没有的行。
select a.first_col,
a.second_col,
b.first_col,
b.second_col
from sec1412a a
left outer join sec1412b b
on a.first_col=b.first_col
and a.second_col=b.second_col
where b.first_col is null 先执行外连接,。
order by a.first_col,
a.second_col;
</pre>
<hr align=left size=3 width=80% color=green>
<a href="首页.html">返回首页</a>
</body>
</html>
SQL第十四章
最新推荐文章于 2019-12-31 02:08:27 发布