zoukankan      html  css  js  c++  java
  • 嵌套子查询和关联子查询

    嵌套子查询: 

    1. 内部查询只处理一次

    2. 与null比较,总得到null

    3.先进行内部查询,然后再进行外部查询

    关联子查询:

    1.外部查询得到的每条记录传入到内部查询

    2.内部查询基于外部查询传入的值

    3.内部查询从其结果中把值传回到外部查询,外部查询使用这些值来完成其处理

    什么时候使用?

    外部查询返回较少记录时,关联子查询比嵌套子查询效率高;

    内部查询返回较少记录时,嵌套子查询比关联子查询效率高.

    in和exists

    select * from A where cc in (select cc from B)

    如果表A较大,那么in比exists的效率要高(可以用到B表上cc列的索引).

    select * from A where exists (select cc from B where cc=A.cc)

    如果表A较小,那么exists比in的效率要高(可以用到A表上cc列的索引)

    not in 和not exists

    如果查询语句使用了not in 那么内外表都进行全表扫描,没有用到索引;
    而not extsts 的子查询依然能用到表上的索引。
    所以无论那个表大,用not exists都比not in要快。

    原文链接:http://www.cnblogs.com/DavidYan/articles/2044743.html

  • 相关阅读:
    JavaWeb 【介绍】
    Python3 【解析库XPath】
    Python【类编程】
    Python3【正则表达式】
    Java GUI【记事本】
    Java 【笔记本】
    Python3 【requests使用】
    Java 【食品库存管理】
    AGC027 C
    AGC027 A
  • 原文地址:https://www.cnblogs.com/talentzemin/p/3984559.html
Copyright © 2011-2022 走看看