锲子:
首先我需要纠正一下我自己对组合查询的美丽误会:之前在进行机房收费系统时,误将多表连接查询理解成了组合查询,很不小心的歪曲了组合查询的使命。下面让我们通过一张图来比对一下多表连接查询和组合查询的不同之处吧。
从图中我们可以看出:组合查询是将查询结果串联起来了,而多表连接查询则是将查询结果并联起来,这就是两者之间最明显的区别了。
下面我们通过两个关键字:UNION和OR来对组合查询进行初步的学习。
UNION和OR:
我们先通过一个实验来看一下UNION和OR之间究竟又怎样的关系。关系1
UNION的基本查询功能通过OR一样可以实现。
实验用表:命题:查询性别为“男”和供职单位为“公司A”所有员工的信息。 代码(UINON):
<span style="font-family:KaiTi_GB2312;font-size:24px;">select *运行结果: 代码(OR):
from Employee_Info
where Sex ='男'
union
select *
from Employee_Info
where Company ='公司A'</span>
<span style="font-family:KaiTi_GB2312;font-size:24px;">select *运行结果: 从两张运行结果的截图我们不难看出:本例中,使用关键字UNION和关键字OR可以达到相同的效果。但是值得我们注意的是:使用UNION关键字会将结果集中的相同的记录自动去重,不重复显示;而OR则保留相同记录。
from Employee_Info
where Sex ='男'
or Company ='公司A'</span>