sql集合操作

UNION 与UNION ALL UNION 将返回两个查询的结果并去除其中的重复部分下边有两个值勤人员表:输入: SQL> SELECT * FROM FOOTBALL 输出: NAME ------ ABLE BRAVO CHARLIE DECON EXITOR FUBAR GOOBE 7 rows selected. --------输入: SQL> SELECT * FROM SOFTBALL 输出: NAME ----- ABLE BAKER CHARLIE DEAN EXITOR FALCONER GOOBER 7 rows selected. --------在这两个表中有哪些不重复的人员呢输入/输出: SQL> SELECT NAME FROM SOFTBALL 2 UNION 3 SELECT NAME FROM FOOTBALL NAME ------- ABLE BAKER BRAVO CHARLIE DEAN DECON EXITOR FALCONER FUBAR GOOBER 10 rows selected. ---------- UNION 返回了两个表中的10 个记录它们是不重复的但是两个表中共有多少人呢包括重复的人员输入/输出: SQL> SELECT NAME FROM SOFTBALL 2 UNION ALL 3 SELECT NAME FROM FOOTBALL NAME ---------- ABLE BAKER CHARLIE DEAN EXITOR FALCONER GOOBER ABLE BRAVO CHARLIE DECON EXITOR FUBAR GOOBER 14 rows selected. ------------------分析可以看到UNION ALL 与UNION 一样对表进行了合并但是它不去掉重复的记录可是如果我们想知道都有谁同时在两个表中呢UNION 无法做到这一点我们需要学习使用 INTERSECT INTERSECT 相交 INTERSECT 返回两个表中共有的行看下例它将返回两个表中有存在的员工输入: SQL> SELECT * FROM FOOTBALL 2 INTERSECT 3 SELECT * FROM SOFTBALL 输出 NAME -------- ABLE CHARLIE EXITOR GOOBER --------分析这些记录是两个表中都存在的 MINUS 相减 MINUS 返回的记录是存在于第一个表中但不存在于第二个表中的记录例如输入: SQL> SELECT * FROM FOOTBALL MINUS SELECT * FROM SOFTBALL 输出 NAME -------- BRAVO DECON FUBAR --------上例中显示了三个不在垒球队中的足球队员如果你把语句的次序颠倒那么你将得到在垒球队中但不在足球队中的队员输入: SQL> SELECT * FROM SOFTBALL MINUS SELECT * FROM FOOTBALL 输出 NAME ------- BAKER DEAN FALCONER --------
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值