码迷,mamicode.com
首页 > 数据库 > 详细

SQL入门之集合操作

时间:2017-04-09 23:44:19      阅读:438      评论:0      收藏:0      [点我收藏+]

标签:关系   exce   image   技术   执行   code   nes   div   需要   

尽管可以在与数据库交互时一次只处理一行数据,但实际上关系数据库通常处理的都是数据的集合。在数学上常用的集合操作为:并(union),交(intersect),差(except)。对于集合运算必须满足下面两个要求:

  • 两个数据集合必须具有同样数目的列
  • 连个数据集中对应列的数据类型必须是一样的(或者服务器能够将其中一种类型转换为另一种类型)

SQL语言中每个集合操作符包含两种修饰:一个包含重复项,另一个去除了重复项(但不一定去除了所有重复项)。

0.union操作符

unionunion all操作符可以连接多个数据集,区别是前者去除重复项,后者保留。对于数据库而言,union all操作更加迅速,因为数据库不需要检查数据的重复性。对于连个表

技术分享技术分享

select IND type_cd, cust_id, lname name
from individual
union all
select BUS type_cd, cust_id, name
from business;

执行操作后的结果为:

技术分享

其中,18个数据来自与individual表,8个来自于business。为了更清楚的看到区别,看下面两个实例:

select a.cust_id, a.name
from business a
uinon all
select b.cust_id, b.name
from business b;

结果为

技术分享

select a.cust_id, a.name
from business a
union
select b.cust_id, b.name
from business b;

结果为

技术分享

可以很明显看出区别。

1.intersect和except操作符

我用的MySQL版本似乎没有实现这两个功能。:(

 

SQL入门之集合操作

标签:关系   exce   image   技术   执行   code   nes   div   需要   

原文地址:http://www.cnblogs.com/pipinet/p/6686820.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!