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

  • 相关阅读:
    什么是“方法”
    break与continue
    循环结构2
    循环结构1
    Switch多选择结构
    if选择结构
    Scanner方法
    Doc参数信息
    运算符号
    变量与常量
  • 原文地址:https://www.cnblogs.com/talentzemin/p/3984559.html
Copyright © 2011-2022 走看看