码迷,mamicode.com
首页 > 数据库 > 详细

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

时间:2018-07-18 17:20:45      阅读:234      评论:0      收藏:0      [点我收藏+]

标签:正在执行   逻辑   最大值   返回值   多行   nbsp   list   运算   表示   

  ##子查询

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

       子查询的结果被主查询(外部查询)使用 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子句中多个条件合并成一个

    技术分享图片  

    多列比较

   

 

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

标签:正在执行   逻辑   最大值   返回值   多行   nbsp   list   运算   表示   

原文地址:https://www.cnblogs.com/destinywxy/p/9329414.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!