• Oracle子查询(单行、多行、关联子查询)、集合运算


    1、单行子查询

    查询工资比名字为ADAMS高的员工的名字和工资:

     除了关联子查询以外,子查询都是先执行子查询再执行主查询。

    2、在from后面使用子查询

     把子查询的查询的结果当作一个新的表。

    3、sql优化

    在子查询和多表查询都可以解决同一个问题的时候,尽量使用多表查询,因为子查询的方式需要访问数据库两次,查询效率更低。

    4、多行子查询

    (1)关键字in:

    (2)any(集合中的任意一个值)

     这里的大于any,即大于最小值。

    (3)all(集合中的所有元素)

    这里大于all,即大于最大值。

    5、rownum

    查询全部的员工信息:

     加上rownum属性后进行员工信息的查询:

     可以看出rownum属性是根据查询结果的先后顺序进行添加的。

     当按员工薪水进行员工信息的排序时,rownum属性依旧不变。

     查询薪水最高的三个人的信息,第二行的select语句查询的数据是临时表。

    6、关联子查询

    关联子查询中,外部查询返回的每一行数据,内部查询都要执行一次。上面的例子中,先取出emp表中的第一行数据,在内查询中查询该工作的平均工资,然后利用外查询,查询高于平均工资的员工信息。

    7、UNION

    (1)分别查询10号部门和20号部门的员工信息:

     (2)使用集合运算的方式一次查询10号和20号部门的员工信息:

     (3)尽量不要使用UNION,因为查询效率会随着UNION使用的次数的增多(访问数据库的次数也会增多)而降低。

    8、交集:INTERSECT

    9、差集:MINUS

  • 相关阅读:
    pycharm 使用pip3更新插件已经更新时报错
    剑指Offer系列之题11~题15
    剑指Offer系列之题1~题5
    个人hexo博客(静态,无后台)搭建
    设计模式之单例模式
    Hibernate实现limit语句效果
    Springboot项目中 前端展示本地图片
    eclipse报错:problems during content assist
    python中open与with open的区别
    修改Jenkins目录
  • 原文地址:https://www.cnblogs.com/zhai1997/p/12347418.html
Copyright © 2020-2023  润新知