create table test1
(
name varchar(10),
sex varchar(10),
age int
);
insert into test1 values('luxin','female',25);
insert into test1 values('tom','female',26);
insert into test1 values('mary1','male',27);
insert into test1 values('money','male',27);
insert into test1 values('tony','male',28);
insert into test1 values('tony1','male',19);
//创建表2
create table test2
(
name varchar(10),
sex varchar(10),
age int
);
insert into test2 values('luxin','female',25);
insert into test2 values('tom','female',26);
insert into test2 values('mary2','male',27);
insert into test2 values('money','male',27);
insert into test2 values('tony','male',28);
insert into test2 values('tony2','male',19);
-------------------------------------------
select * from test1 minus select * from test2;
结果:
NAME SEX AGE
---------- ---------- ----------
mary1 male 27
tony1 male 19
-----------------------------------------------------------
select * from test2 minus select * from test1;
结果:
NAME SEX AGE
---------- ---------- ----------
mary2 male 27
tony2 male 19
结论:Minus返回的总是左边表中的数据,它返回的是差集。
用表1-表2中的数据,如果相同,则去掉,否则返回表1中的数据。
==========================================================
今天在看数据集合时偶然看到了SQL 有MINUS,可以达到相同的目的
具体如下:
SQL中的MINUS关键字
SQL中有一个MINUS关键字,它运用在两个SQL语句上,它先找出第一条SQL语句所产生的结果,然后看这些结果有没有在第二个SQL语句的结果中。如果有的话,那这一笔记录就被去除,而不会在最后的结果中出现。如果第二个SQL语句所产生的结果并没有存在于第一个SQL语句所产生的结果内,那这笔资料就被抛弃,其语法如下:
[SQL Segment 1]
MINUS
[SQL Segment 2]
其实简单的一句话就是找出第一条SQL查询的不在第二条SQL语句查询结果中的那些记录,并且要注意最后返回的结果集中,不同的记录只会被列出一次!
下面是我做的实验,很明显能够看出MINUS的效率,made_order共23万笔记录,charge_detail共17万笔记录
性能比较:
SELECT order_id FROM made_order
MINUS
SELECT order_id FROM charge_detail
1.14 sec
SELECT a.order_id FROM made_order a
WHERE NOT exists (
SELECT 1
FROM charge_detail
WHERE order_id = a.order_id
)
18.19 sec
SELECT order_id FROM made_order
WHERE order_id NOT in (
SELECT order_id
FROM charge_detail
)
20.05 sec
还有其它一下关键字:
INTERSECT (交集)
UNION ALL 并集
分享到:
相关推荐
在JavaScript中,处理数组操作是常见的任务,特别是当你需要找出两个数组之间的交集、差集、并集和补集时。这些概念源自集合论,并在编程中被广泛应用于数据处理和分析。以下将详细介绍如何使用ES5和ES6语法来实现...
本篇将详细介绍如何使用JavaScript来获取两个数组的交集、差集、并集和补集,以及如何去除数组中的重复元素。这些操作在实际编程中非常实用,可以帮助我们有效地处理和分析数据。 首先,我们需要一个辅助方法`each`...
Oracle 集合操作函数 union、intersect、minus Oracle 集合操作函数是用于合并多条 SELECT 语句的结果的函数,包括 UNION、INTERSECT、MINUS 等。这些函数可以将多个查询结果合并成一个结果集,以便进一步处理和...
在JavaScript中,集合运算通常指的是对数组或类数组对象进行的交集、并集、差集和去重等操作。随着ECMAScript的发展,从ES5到ES6,这些操作的实现方式也有了较大的变化。下面,我们将详细介绍使用ES5和ES6语法来实现...
集合运算是数据库查询中的一种重要操作,它允许将两个或多个SQL查询的结果集进行并集、交集和差集的运算。在数据库的查询语言中,如SQL(Structured Query Language),集合运算符用于对查询结果集进行组合或比较,...
Oracle在执行查询时会进行多种内部操作,包括排序(SORT)、连接(JOIN)、并集(UNION)、差集(MINUS)、交集(INTERSECT)等。例如: - ORDER BY会触发SORT ORDER BY操作,用于对结果集进行排序。 - UNION和UNION...
此外,Oracle还支持集合操作,如并集(UNION),交集(INTERSECT)和差集(MINUS): ```sql -- 并集:返回两个查询结果的唯一行 SELECT column FROM table1 UNION SELECT column FROM table2; -- 交集:返回两个...
2. **集合运算符**:引入了`UNION ALL`、`INTERSECT`和`MINUS`操作符,使得数据集合的并集、交集和差集操作更加直观。 3. **分析函数**:新增了窗口函数,如`ROW_NUMBER()`、`RANK()`、`DENSE_RANK()`,允许在结果...
6. 探索高级SQL查询技术,如合并查询(MERGE)、并集(UNION ALL)、交集(INTERSECT)、差集(MINUS),以及GROUP BY、ROLLUP、CUBE等聚合函数,提升数据提取效率。 7. 学习编写SQL脚本,生成报表样式的输出结果,...
集合操作包括并集(UNION)、交集(INTERSECT)和差集(MINUS)。 5. **连接查询**:用于合并多个表的数据,依据表之间的关联关系,如内连接(INNER JOIN)、左连接(LEFT JOIN)、右连接(RIGHT JOIN)和全连接...
主要有三种类型的集合运算:并集(`UNION`, `UNION ALL`)、交集(`INTERSECT`)和差集(`MINUS`)。 - **并集(`UNION` / `UNION ALL`)** - **`UNION`** 运算符用于合并两个或多个`SELECT`语句的结果集,并自动...
"15_SET 运算符.ppt"讲解了并集(UNION)、交集(INTERSECT)和差集(MINUS)等集合运算符,用于合并和比较多个查询结果集。 "16_控制用户权限.ppt"涵盖了Oracle的权限和角色管理,这是数据库安全的关键部分,包括...
SQL 面试题:经典 50 例 本文档总结了 SQL 面试题的经典 50 例,涵盖了 SELECT 查询、FROM 子句、WHERE 条件、GROUP BY 分组、HAVING 条件、ORDER BY 排序、LIMIT 限制等多个方面。...* MINUS(EXCEPT)相减(差集)
在Oracle数据库中,集合查询是一种处理多个数据集的方法,它包括`UNION`, `INTERSECT`, 和 `MINUS`这三个操作符。这些操作符帮助我们合并或对比来自不同SQL查询的结果集,从而获取我们需要的数据。 1. **UNION**: ...
集合操作符包括`INTERSECT`(交集)、`UNION`(并集)和`MINUS`(差集),用于组合多个查询结果。 #### 2.1 交集:INTERSECT `INTERSECT`返回两个或多个查询结果中的公共行。例如,找出部门10和部门20共有的工作...
- **交集**:`INTERSECT` - **分组查询**: ```sql SELECT 字段名1, 字段名2, … FROM 表名 GROUP BY 字段名1 [HAVING 条件]; ``` - **多表连接查询**: ```sql SELECT 字段名1, 字段名2, … FROM 表名1 INNER...
3. 集合运算符如UNION、INTERSECT和MINUS等用于实现集合运算。 4. 子查询、连接和集合的总结涉及如何根据查询需求选择合适的查询方式。 十五、排名分页问题 1. Rownum是Oracle数据库中用于表示查询结果集中行号的一...
例如,SQL(结构化查询语言)提供了对表进行交集(INTERSECT)、并集(UNION)和差集(MINUS或EXCEPT)的操作。 首先,让我们来了解这三个基本操作: 1. **集合交集**:交集(INTERSECT)返回两个集合中都有的元素...