今天在思考一个sql语句的时候做了下比较 特做如下总结
要实现的问题是,一个职工表,一个是职工培训表,后者当然有外键职工表的ID,现在要查出未参加培训的职工的资料
在一开始写成
select * from myuser where myuser.userid not in (select userid from training)
运行得到想要的记录集合
但曾见过查询执行效率与sql的写法存在很大关系,遂到网上搜索,发现exists的使用在userid有无索引的情况下,查询的性能存在很大的区别.继续查找发现了一个新的东东minus,这个在不同的数据库下,也就是数据库迁移后,同一句sql性能也有很大的变化
select * from myuser t where t.userid in (select userid from myuser minus select userid from training )
这个是在sqlsever迁移到oralce 时性能大不同的帖子中看到的使用方法
分享到:
相关推荐
Oracle数据库中的`MINUS`操作符是一个非常实用的SQL特性,它允许你在两个查询结果集中进行差异比较。本文将深入探讨`MINUS`的用法,并通过实例来展示其功能。 `MINUS`操作符的基本概念是:它返回第一个查询(A)的...
Oracle MINUS 函数和 OVER 函数实现两个记录集的比较 MINUS 函数和 OVER 函数是 Oracle 中强大的数据比较工具,通过这两个函数,可以实现两个记录集的比较,判断记录集之间的差异,并将差异的数据显示给用户。本文...
在Oracle数据库中,`MINUS`、`IN` 和 `EXISTS` 是三种不同的SQL查询操作符,它们各自用于特定的数据处理场景。了解并熟练掌握这些操作符对于优化查询性能和编写复杂的SQL语句至关重要。 1. **MINUS 操作符** `MINUS...
在SQL查询中,`INTERSECT` 和 `MINUS` 是两种用于集合操作的运算符,它们在某些数据库系统如PostgreSQL、Oracle等中被广泛使用。然而,MySQL并不直接支持这两种运算符,但可以通过一些替代策略来实现类似的功能。...
Oracle 集合操作是指在数据库中对数据进行集合运算的操作,包括 union、union all、intersect 和 minus 等操作。这些操作可以对数据进行合并、交叉、差异等处理,提高数据处理效率。 union 操作 Union 操作是将两...
Oracle 集合操作函数 union、intersect、minus Oracle 集合操作函数是用于合并多条 SELECT 语句的结果的函数,包括 UNION、INTERSECT、MINUS 等。这些函数可以将多个查询结果合并成一个结果集,以便进一步处理和...
本文将重点介绍如何运用Oracle中的`MINUS`函数和`OVER`函数,通过构建视图的方式来直接比较两个记录集的差异。 #### Oracle数据库中记录集的比较方法 在Oracle数据库中,对于两个记录集的比较,通常会涉及到以下几...
本文将详细介绍如何利用Oracle中的`MINUS`操作符以及`ROWNUM`伪列来实现这一功能。 #### ROWNUM伪列简介 在介绍具体方法之前,我们首先了解一下`ROWNUM`伪列的基本概念。`ROWNUM`是Oracle提供的一种特殊的伪列,它...
可以看到,Oracle的SELECT语句支持更多的子句,例如START WITH U CONNECT BY、INTERSECT和MINUS等。这些子句在SqlServer中不支持,但是可以使用其他方式实现相同的结果。 二、函数和过程 Oracle和SqlServer都支持...
在Oracle中,我们可以使用RowNum函数、Minus运算符、Subquery和Top-N查询来实现分页查询。这些方法可以根据不同的需求选择合适的方法来实现分页查询。在开发中,我们需要根据实际情况选择合适的方法来实现分页查询。
- 使用`EXISTS` 或 `NOT EXISTS` 替代`INTERSECT` 和 `MINUS` 集合运算符。 **2. INSERT语句** - **Oracle:** Oracle的INSERT语句允许插入单行或多行数据,也支持从一个表向另一个表插入数据。 ```sql INSERT ...
- Oracle 支持 `INTERSECT` 和 `MINUS` 集合运算符,而 SQL Server 用 `EXISTS` 和 `NOT EXISTS` 子句来实现相同的效果。 对于示例中的 `INTERSECT` 和 `MINUS` 运算符,可以使用 `EXISTS` 或 `NOT EXISTS` 来达到...
oracle 数据库所有示例 --有去除功能的 是通过交集做的计算 select sname,sal,sage,sdeptno from student where sdeptno in(20,10) union select sname,sal,sage,sdeptno from student where sdeptno=20 ; --没有...
还可以通过集合操作如`MINUS`或`EXCEPT`找出连续日期的序列。这种方法可能需要多个步骤,但可以提供更灵活的处理方式。 5. **触发器和存储过程** 在复杂的应用场景中,可能需要在插入或更新数据时实时维护连续天数...
6. 探索高级SQL查询技术,如合并查询(MERGE)、并集(UNION ALL)、交集(INTERSECT)、差集(MINUS),以及GROUP BY、ROLLUP、CUBE等聚合函数,提升数据提取效率。 7. 学习编写SQL脚本,生成报表样式的输出结果,...
2. **复杂查询**:包括联接查询(JOIN)、子查询、集合操作(UNION, INTERSECT, MINUS),以及聚合函数(COUNT, SUM, AVG, MAX, MIN)等。 以上只是Oracle学习笔记的一部分,实际学习中还包括索引、视图、存储过程...
### ORACLE经典学习笔记知识点概览 #### 第一章 ORACLE 命令 本章节主要介绍了Oracle数据库中常用的命令及其使用方法。 1. **查看参数文件**: `Desc v$parameter` - 这个命令用于查看Oracle的参数文件信息,通过...