表的集合运算

表,视图  和查询的执行结果表可以理解成“记录的集合”。

1.求并集 —— union

对两张表中的记录求并集,使用关键字  union.

select   t1.name  ,  t1.sex  from  tb_student1  t1
union
select   t2.name  ,  t2.sex  from  tb_student2  t2;

对于重复的记录,会自动进行去重。如果想要不进行去重的结果,使用 union  all。

select   t1.name  ,  t1.sex  from  tb_student1  t1
union  all
select   t2.name  ,  t2.sex  from  tb_student2  t2;

表的集合运算的注意事项 : (求交集  ,求差集同样要遵守)
注意事项1:作为运算对象的 记录的列数必须相同。

注意事项2:再列数相同的情况下,每列的数据类型应该一致。

注意事项3:求完并集之后,才进行排序。如果要进行排序,order by子句只能再最后使用一次。

2.求交集  —— intersect

对两张表中的记录求交集 ,使用关键字 intersect   (MySQL数据库暂不支持)

select   t1.name  ,  t1.sex   from  tb_student  t1
intersect
select   t2.name  ,  t2.sex   from  tb_student  t2;

intersect应用于两张表 ,将选取出它们当中的公共记录。

同样,如果需要保留重复行时 ,需要使用 intersect  all.

3.求差集  —— except

select  t1.name  ,  t1.sex  from  tb_student1  t1
except
select  t2.name  ,  t2.sex  from  tb_student2  t2;

假设前面的select查询,得到的结果表1包含5条记录,后面的select查询,得到的结果表2包含3条记录。

这两张表,根据name,sex来判断,有两条记录是相同的。那么就在 结果表1中去除掉这两条记录,得到最终的结果表。

求差集,可以看成是先求两表的交集记录,然后在被减表中去掉交集记录的过程。

时间: 2024-10-12 03:36:57

表的集合运算的相关文章

sql的基础语句-单行函数,dual,数字函数,日期函数,表连接,集合运算,分组报表,单行子查询,多行子查询

3. 单行函数 3.1 转换函数 select ascii('A'),chr(65) from dual; select to_char(1243123),1231451 from dual;靠左边的就是字符串,靠右边的就是数字 select to_char(123512a121) from dual;   --错误的写法,没有引号表示数字,但是数字里面包含了字母,不合法的输入值 select to_number('123141211') from dual; select to_number(

5.创建表,使用alter进行表信息的增删改,Oracle回收站,集合运算

 1  Oracle基于用户的管理方案 2 DDL语句可以管理数据库的对象有:视图   索引  序列  同义词   约束 3  创建一个表,有2个条件(1 有权限:2有表空间) Oracle给你提供了默认的resource. 4 创建表,表信息的增删改,Oracle回收站 DDL 管理数据库的对象 表 视图 索引 序列 同义词 约束(..... ) oracle基于用户的管理方案 借助于管理工具可以方便 看到数据库各个对象.... 1 创建一个表 2个条件(1 有权限  2 有表空间) or

Oracle组函数、多表查询、集合运算、数据库对象(序列、视图、约束、索引、同义词)等

count组函数:(过滤掉空的字段) select count(address),count(*) from b_user max() avg() min(),sum() select sum(age),max(age),min(age),avg(nvl(age,0)) from b_user 1       260     70      10      37.1428571428571 group by:如果前面定义了该字段名  则groupby必须也写上该字段 select name,pw

SQL Fundamentals || 多表查询(内连接,外连接(LEFT|RIGHT|FULL OUTER JOIN),自身关联,ON,USING,集合运算UNION)

一.多表查询基本语法 在进行多表连接查询的时候,由于数据库内部的处理机制,会产生一些“无用”的数据,而这些数据就称为笛卡尔积. 多表查询时可以利用等值关联字段消除笛卡尔积 多表查询之中,每当增加一个关联表都需要设置消除笛卡尔积的条件 分析过程很重要: 确定所需要的数据表 确定已知的关联字段: 按照SQL语句的执行步骤编写:FROM,WHERE,SELECT,ORDER BY (由于SELECT是在WHERE子句之后执行,所以SELECT子句所定义的别名WHERE不可以直接使用) (由于SELEC

第七章 集合运算 7-1 表的加减法

一.什么是集合运算 集合:集合在数学领域表示"各种各样"事物的总和.在数据库领域表示记录的集合. 集合运算:集合运算就是对满足同一规则的记录进行的加减等四则运算. 二.表的加法--UNION 加法运算UNION并集 UNION等集合运算通常是除去重复记录的. 三.集合运算的注意事项 注意1??作为运算对象的记录的列数必须相同. 注意2??作为运算对象的记录中列的类型必须一致.类型转换函数CAST() 注意3??可以使用任何SELECT语句,但是ORDER BY子句只能在最后使用一次.

SQL基础教程(第2版)第7章 集合运算:7-1 表的加减法

7-1 表的加减法 ● 集合运算就是对满足同一规则的记录进行的加减等四则运算.● 使用UNION(并集). INTERSECT(交集). EXCEPT(差集)等集合运算符来进行集合运算.● 集合运算符可以去除重复行.● 如果希望集合运算符保留重复行,就需要使用ALL选项. ■什么是集合运算 集合在数学领域表示“(各种各样的)事物的总和”,在数据库领域表示记录的集合.具体来说,表.视图和查询的执行结果都是记录的集合.■表的加法——UNION首先为大家介绍的集合运算符是进行记录加法运算的 UNION

oracle中 常用的 join on 相关和 集合运算的总结

sql常用联合查询的 join on . left join(左连接) . right join (右连接).inner join (等值连接)以及常用的集合运算有:union.unionall.minus.intersect的效果和总结 首先接着用上一篇的book表和pbook表: 首先把join on和inner join 放在一起: select * from book a join ( select id,name,price from pbook) b on a.id=b.id; se

SQL集合运算 差集 并集 交

SQL-3标准中提供了三种对检索结果进行集合运算的命令:并集UNION:交集INTERSECT:差集EXCEPT(在Oracle中叫做 MINUS).在有些数据库中对此的支持不够充分,如MySql中只有UNION,没有其他两种.实际上这些运算都可以通过普通的SQL来实现,虽然有时有些繁琐. 假设有两个表(或视图)s,t,s中有两个字段sa,sb:t中有两个字段ta,tb: 差集EXCEPT: PLAIN TEXT SQL: SELECTsaFROMs EXCEPT SELECTtaFROMt;

SQL集合运算

转载:详解SQL集合运算 本系列[T-SQL基础]主要是针对T-SQL基础的总结. [T-SQL基础]01.单表查询-几道sql查询题 [T-SQL基础]02.联接查询 [T-SQL基础]03.子查询 [T-SQL基础]04.表表达式-上篇 [T-SQL基础]04.表表达式-下篇 [T-SQL基础]05.集合运算