解释及例子:
MINUS Query:
http://www.techonthenet.com/sql/minus.php
IN Function:
http://www.techonthenet.com/sql/in.php
EXISTS Condition:
http://www.techonthenet.com/sql/exists.php
实例代码:
引用
SQL> select distinct deptno from dept
DEPTNO
----------
10
20
30
40
4 rows selected.
SQL> select distinct deptno from emp
DEPTNO
----------
30
20
10
3 rows selected.
SQL> select distinct deptno from dept
where deptno in
(select distinct deptno from emp)
DEPTNO
----------
30
20
10
3 rows selected.
SQL> select distinct deptno from dept
where exists
(select distinct deptno from emp where dept.deptno = emp.deptno)
DEPTNO
----------
30
20
10
3 rows selected.
SQL> select distinct deptno from dept
minus
select distinct deptno from emp
DEPTNO
----------
40
1 row selected.
SQL> select distinct deptno from dept
where deptno not in
(select distinct deptno from emp)
DEPTNO
----------
40
1 row selected.
SQL> select distinct deptno from dept
where not exists
(select distinct deptno from emp where dept.deptno = emp.deptno)
DEPTNO
----------
40
1 row selected.
分享到:
相关推荐
- 使用`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 的 `INTERSECT` 和 `MINUS` 集合运算符在 SQL Server 中可以用 `EXISTS` 和 `NOT EXISTS` 子句来模拟。 总的来说,Oracle 到 SQL Server 的迁移不仅仅是简单的语法转换,还需要理解两者在处理逻辑、...
- **SELECT语句**:尽管基本语法相似,但Oracle支持特定的优化提示和集合运算符如START WITH和CONNECT BY,以及INTERSECT和MINUS,这些在Sql Server中需要通过其他方式实现,比如使用EXISTS和NOT EXISTS子句。...
3. 子查询:理解嵌套查询的概念,掌握IN、NOT IN、EXISTS、NOT EXISTS等子查询用法。 4. 分区和索引:了解Oracle的分区技术,如何提高查询性能,以及索引的创建、管理和使用。 5. 视图:创建和使用视图以简化复杂...
* EXISTS 和 NOT EXISTS:检查子查询返回的行是否存在 * ANY、SOME 和 ALL:将值与列表或子查询进行比较 7. 设置操作符 * UNION:合并两个或多个独立查询的结果 * INTERSECT:实现两个独立查询的结果的交集 * ...
* 使用 NOT IN 语句来实现查询 * 使用 MINUS 语句来实现查询 * 使用 ALL 语句来实现查询 * 使用 LEFT OUTER JOIN 语句来实现查询 * 使用 NOT EXISTS 语句来实现查询 * 使用 INTERSECT 语句来实现查询 从这些解决...
- **IN/NOT IN操作符优化**:在业务密集的SQL中尽量避免使用`IN`和`NOT IN`操作符,可以使用`EXISTS`或`NOT EXISTS`来代替,以提高性能。同时,如果使用`IN`操作符,应将出现频率最高的值放在列表的前面。 - **IS ...
Oracle 的 From 子句表的顺序,Where 子句表达式的顺序,避免使用 ‘*’,使用 Truncate 代替 Delete,使用索引尽量减少对表的查询,避免使用右匹配或者中间匹配的模糊查询,并注意使用 exists、NOT EXISTS、NOT IN ...
IN子句用于检查某列的值是否在另一个查询的结果集中,而EXISTS则检查是否存在匹配的子查询结果。一般来说,当T1的数据量远小于T2时,EXISTS的效率更高,反之,当T1的数据量远大于T2时,IN的效率更优。 MINUS关键字...
- **使用Exists替代In**:Exists更高效于In,尤其在有子查询的情况下。 - **避免使用Not In**:Not Exists通常优于Not In。 - **避免使用DISTINCT**:在一对多查询时,应避免在SELECT中使用DISTINCT,可以考虑...
### Oracle基础知识概述 本文旨在为初学者提供Oracle数据库的基础知识概览,重点涵盖子查询、集合操作以及常用函数等核心概念和技术。通过本篇的学习,读者可以更好地理解Oracle数据库的操作方式,并掌握一些实用...
Oracle高级SQL学习与练习涵盖了数据库编程中的一系列高级主题,旨在帮助数据库开发者和管理员提高解决复杂问题的能力。在Oracle数据库系统中,高级SQL技能是进行高效数据管理、查询优化和复杂数据处理的基础。 1. ...
- Oracle和SQL Server都支持`JOIN`,但Oracle的`MINUS`和`INTERSECT`操作在SQL Server中可以用`NOT EXISTS`和`INNER JOIN`或`UNION ALL`替代。 通过了解这些差异,开发者可以在跨平台项目中更高效地编写SQL语句,...
6. **MINUS子句和NOT IN**:MINUS子句通常比NOT IN更快,但需注意,NOT IN和NOT EXISTS在处理NULL值时有所不同,NOT EXISTS在某些情况下可能更快,因为它可以使用索引。 7. **LIKE操作符的效率**:`LIKE`操作符,...
- **存在量词**:介绍EXISTS和NOT EXISTS量词在子查询中的应用。 #### 九、高级查询 - **窗口函数**:ROW_NUMBER、RANK、DENSE_RANK等功能详解。 - **集合运算**:UNION、INTERSECT、MINUS操作符的使用方法。 - **...