集合运算 10级 学员 马林 课堂总结 集合操作符 1. UNION/UNION ALL 并集 UNION运算符返回两个集合去掉重复元素后的所有记录 我们以查询姓名中含有A或者M的人的列为例 例: select ename from where ename like ‘%A%’ union select ename from where ename like ‘%M%’; 结果为 UNION ALL运算符返回两个集合的所有记录 我们以查询姓名中含有A或者M的人的列为例 select ename from where ename like ‘%A%’ union all select ename from where ename like ‘%M%’; 结果为 通过上面的结果的对比很容易看出用了UNION ALL查询的结果比使用了UNION查询的结果多了3行记录。所起UNION ALL运算符返回两个集合的所有记录而UNION运算符返回两个集合去掉重复元素后的所有记录。 2. INTERSECT 交集 INTERSECT 运算符返回同时属于两个集合的记录 显示薪水同时位于级别1(700~1300)和级别2(1201~1400)的员工信息。 Select ename,sal from emp where sal between 700 and 1300 INTERSECT Select ename,sal from emp where sal between 1201 and 1400; 结果为 此结果查询的是工资在1201-1300之间的员工信息,即1201-1300就是上面查询语句的条件的交集。 3. MINUS 差集 MINUS返回属于第一个集合,但不属于第二个集合的记录。 显示薪水同时位于级别1(700~1300)和级别2(1201~1400)的员工信息。 Select ename,sal from emp where sal between 700 and 1300 INTERSECT Select ename,sal from emp where sal between 1201 and 1400; 结果为 集合运算符的注意事项 a) select 语句中参数类型和个数要一致。 b) 可以使用括号改变集合执行的顺序 c) 集合运算符采用第一个语句的表头作为表头 d) Order by 子句只能出现在最后一个语句上,第一个select语句接受的列名的列、名称或者别名(查询结果的列名)order by子句必须与第一个select语句的列名相同