Oracle数据库-NOT IN 和 NOT EXISTS及 IN 和 EXISTS的区别详解

1-EXISTS和IN的区别
    IN 是把外表和内表作HASH JOIN,而EXISTS是对外表作LOOP,每次LOOP再对内表进行查询。这样的话,IN适合内外表都很大的情
况,EXISTS适合外表结果集很小的情况;

2- NOT EXISTS和NOT IN的区别
    1)对于NOT EXISTS查询,内表存在空值对查询结果没有影响;对于NOT IN查询,内表存在空值将导致最终的查询结果为空。 
    2)对于NOT EXISTS查询,外表存在空值,存在空值的那条记录最终会输出;对于NOT IN查询,外表存在空值,存在空值的那条记
录,最终将被过滤,其他数据不受影响

posted @ 2020-09-24 10:39  吴土炮Jared  阅读(1093)  评论(0编辑  收藏  举报