SQL中union运算操作的理解

  在SQL中,对于并运算,可以使用union关键字。

例如:

SELECT column_name(s) FROM table_name1
UNION
SELECT column_name(s) FROM table_name2

在学习过程中,我产生了一个疑问,如果两个表的属性名称不同会出现什么情况呢?

直接模拟了一个例子,构建代码如下:

create table employee
(empname     char(6),
numchildren    int
)

create table dependent
(depname     char(6),
age    int
)

insert into employee values(haohao,2);
insert into employee values(haohao,4);
insert into employee values(fgsd,5);
insert into employee values(hds,7);
insert into employee values(hauuo,9);
insert into employee values(hsao,4);
insert into employee values(hhao,5);


insert into dependent values(haohao,2);
insert into dependent values(hdgso,2);
insert into dependent values(hreo,2);
insert into dependent values(hjh,2);
insert into dependent values(haaao,2);

这两个表的属性只是数据类型相同,测试效果如下:

(select  empname,numchildren
from employee)
union
(select depname,age
from dependent
)

结果为:

"hjh ";2
"hhao ";5
"haohao";2
"hdgso ";2
"haohao";4
"fgsd ";5
"hds ";7
"hsao ";4
"haaao ";2
"hreo ";2
"hauuo ";9

可以看出,进行了合并,并且去除了重复。

后来在W3School中的SQL模块看到了对于并运算的定义:

  “请注意,UNION 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同。”

参考链接:http://www.w3school.com.cn/sql/sql_union.asp

2015-05-20

17:58:35

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。