东软实习之数据库——子查询

Posted destinywxy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了东软实习之数据库——子查询相关的知识,希望对你有一定的参考价值。

  ##子查询

     括号内的查询叫做子查询,也叫内部查询,先于主查询执行。

       子查询的结果被主查询(外部查询)使用 Expr operator包括比较运算符。

      • 单行运算符:>、=、>=、<、<>、<=
      • 多行运算符: IN、ANY、ALL

      技术分享图片

       子查询可以嵌于以下SQL子句中:

    1. WHERE子句
    2. HAVING子句
    3. FROM子句

       技术分享图片

     子查询使用指导

      • 子查询要用扩号扩起来
      • 将子查询放在比较运算符的右边
      • 在子查询中的ORDER BY 子句不需要,除非你正在执行Top-N分析
      • 对于单行子查询要使用单行运算符
      • 对于多行子查询要使用多行运算符

  #子查询类型

      技术分享图片


  #单行子查询

    单行子查询

    • 子查询只返回一行一列
    • 使用单行运算符

     技术分享图片

      技术分享图片

    • 子查询中使用组函数   

        查询工资最低的员工姓名,岗位及工资

        技术分享图片

    • HAVING子句中使用子查询

        查询部门最低工资比20部门最低工资高的部门编号及最低工资

        技术分享图片


  #多行子查询

    多行子查询,子查询返回记录的条数可以是一条或多条。

    多行子查询需要使用多行操作符。  

    常用的多行操作符包括:   

    • IN
    • ANY
    • ALL

    IN操作符和以前介绍的功能一致,判断是否与子查询的任意一个返回值相同。返回的结果可以是一条或多条。

    #IN

      技术分享图片

    #ANY:表示任意的。

      < ANY 比子查询返回的任意一个结果小即可,即小于返回结果的最大值。

      = ANY 和子查询中任意一个结果相等即可,相当于IN。

      > ANY比子查询返回的任意一个结果大即可,即大于返回结果的最小值。

       技术分享图片

    #ALL:表示所有的。

      < ALL 比子查询返回的所有的结果都小,即小于返回结果的最小值。

      > ALL比子查询返回的所有的结果都大,即大于返回结果的最大值。

      = ALL 无意义,逻辑上也不成立。

      技术分享图片



  ##多列子查询

    到目前为止您已经能完成单行和多行子查询,但是都是只有一个列在SELECT语句的WHERE或HAVING子句中进行比较。

    如果想多个列进行比较呢,您必须使用逻辑运算符编写一个复合WHERE子句。  

    多列子查询可以让您将WHERE子句中多个条件合并成一个

    技术分享图片  

    多列比较

   

 

以上是关于东软实习之数据库——子查询的主要内容,如果未能解决你的问题,请参考以下文章

东软实训之数据库

Mybaits:常用数据库操作(东软的操作)

直击网申系列直播:数据结构高频考点之二叉树二分搜索树二叉堆

Oracle学习 第4天之高级查询

大数据开发实习准备记录4

数据库之表查询,单表多表,子查询