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

时间: 2024-12-28 11:54:51

SQL中union运算操作的理解的相关文章

SQL点滴33—SQL中的字符串操作

原文:SQL点滴33-SQL中的字符串操作 计算字符串长度len()用来计算字符串的长度 select sname ,len(sname) from student 字符串转换为大.小写lower() 用来将一个字符串转换为小写,upper() 用来将一个字符串转换为大写 select lower('I AM A STUDENT !') select upper('i am a student !') 截去字符串左.右侧空格                                    

SQL中DML(数据库操作语言)的使用

1.插入语句: INSERT [INTO] table [(column1, column2, column3, . . .)] VALUES(value1, value2, value3, . . .); 例:INSERT INTO user VALUES(NULL, 'test', '123456'); 例:INSERT INTO user (username, password) VALUES('test', '123456'); 实际上还有一种方式: 例:INSERT INTO user

SQL中的join操作总结(非常好)

1.1.1 摘要 Join是关系型数据库系统的重要操作之一,SQL Server中包含的常用Join:内联接.外联接和交叉联接等.如果我们想在两个或以上的表获取其中从一个表中的行与另一个表中的行匹配的数据,这时我们应该考虑使用Join,因为Join具体联接表或函数进行查询的特性 本文将通过具体例子介绍SQL中的各种常用Join的特性和使用场合: 目录 Inner join Outer join Cross join Cross apply Cross apply 和 Inner join的区别

Spark SQL中Dataframe join操作含null值的列

当在Spark SQL中对两个Dataframe使用join时,当作为连接的字段的值含有null值.由于null表示的含义是未知,既不知道有没有,在SQL中null值与任何其他值的比较(即使是null)永远不会为真.故在进行连接操作时null == null不为True,所以结果中不会出现该条记录,即左侧表格的这条记录对应右侧的值均为null.示例如下: table_a: date serverId lvSection 2018-03-04 1 10 2018-03-05 null 9 2018

SQL中union, EXCEPT 和 INTERSECT使用方法

这三个放在一起是有理由的,因为他们都是操作两个或多个结果集,并且这些结果集有如下限制: 所有查询中的列数和列的顺序必须相同. 数据类型必须兼容. 并且它们都是处理于多个结果集中有重复数据的问题 首先还是创建测试环境 use tempdb create table tempTable1 (id int primary key identity, price int) create table tempTable2 (id int primary key identity, price int) i

sql中Union和union all的使用

该文转载自:http://www.cnblogs.com/chaobaojun/archive/2009/12/24/1631508.html 在MS-SQL如果将两个或更多查询的结果组合为单个结果集,该结果集包含联合查询中的所有查询的全部行,常用的方法如下: 一.       使用union 或union All语句 1.   union 与 union all语句的区别 ?         UNION 组合多个表(或结果集)并将其作为单个结果集返回; ?         UNION ALL 

sql中union和union all的用法

如果我们需要将两个select语句的结果作为一个整体显示出来,我们就需要用到union或者union all关键字.union(或称为联合)的作用是将多个结果合并在一起显示出来. union和union all的区别是,union会自动压缩多个结果集合中的重复结果,而union all则将所有的结果全部显示出来,不管是不是重复. union:对两个结果集进行并集操作,不包括重复行,同时进行默认规则的排序:union在进行表链接后会筛选掉重复的记录,所以在表链接后会对所产生的结果集进行排序运算,删

关于SQL中Union和Join的用法

转自帘卷西风的专栏(http://blog.csdn.net/ljxfblog) https://blog.csdn.net/ljxfblog/article/details/52066006 Union UNION 操作符用于合并两个或多个 SELECT 语句的结果集. 请注意,UNION 内部的 SELECT 语句必须拥有相同数量的列.列也必须拥有相似的数据类型.同时,每条 SELECT 语句中的列的顺序必须相同. //联合两个表,没有重复 SELECT E_Name FROM Employ

PL\SQL中对数据库操作后没有改变

问题描述:在PL\SQL的SQL WINDOW中对数据库进行增.删.改操作后,在别的命令窗口查没有改变问题分析:SQL WINDOW中对数据库的增删改操作都是临时的,需要进行COMMIT才能生效,但是在关闭窗口时操作会提示是否保存.解决方法:对每次操作后,添加COMMIT语句,或者直接使用右上角的提交按钮. 原文地址:http://blog.51cto.com/13402621/2156312