MINUS使用方法(sql优化)

查A表

select t.* from test_a t;

MINUS使用方法(sql优化)_第1张图片
查B表

select t.* from test_b t;

MINUS使用方法(sql优化)_第2张图片

要比较A和B的差异 两个逻辑 B在A中没有的数据就是name:A,B ,语法:

select name from TEST_A minus select name from TEST_B ;

结果集:
这里写图片描述
另一个逻辑,B比A多的数据,就是A中没有的数据,语法:

select name from TEST_B minus select name from TEST_A ;

结果集:
MINUS使用方法(sql优化)_第3张图片
minus 语法对于对比一个字段的差异(增加或减少)的数据的比较特别实用,但是如果
select id,name from TEST_A minus select id,name from TEST_B ;像这样我们查了两个字段,就是指这两个字段都不一样的
MINUS使用方法(sql优化)_第4张图片
查出就是这样的形式 A表的5条数据都是和B表不一样的(id和name对应不一样),所以A表都会查出来,相反我们调换AB表的位置

select id,name from TEST_B minus select id,name from TEST_A;

MINUS使用方法(sql优化)_第5张图片
查出的自然是B表的所有


问题来了:为什么我们不用in ,not in 或者exists,not exists?

慢!!!!!!慢!!!!!!!!!!

in花费的时间 对比用 minus 的速度是 minus 的 15倍

你可能感兴趣的:(oracle)