• 数据库 组合查询


    组合查询

    结构:select 列1,列2

            from  表名

           where 过滤条件

           group by 列1,列2

          having 聚合函数(列1)=值

         group by 列1,列2

    子查询:嵌套在其他查询中的查询

    子查询的计算列:

    限制:嵌套在select语句中的SQL 语句要求查询只能是单列单行

    a.  from中的嵌套子查询

    语法:select  列1,列2  from表名 where 列1=(子查询)

    比较运算符:</>/<=/>=/=/!=

    b.in 和not in

    子查询运算符(all any exists)

    第一:in

    语法:select * from 表名 where 列in(子查询)

    第二:not in

    语法:select * from 表名 where 列in(子查询)

    c.where中的嵌套:

    第一:all 如果子查询返回的所有值都满足比较运算,那么比较表达式就为真,否是假

    第二:any如果子查询返回的值,只要有一行满足比较运算,那么比较表达式就为真,否则所有的每一行都不满足就是假。

    第三:exists有返回值就为真

    d.where 子句的嵌套:

    exists/ not exists

    使用exists运算符时只要子查询有数据,则为真,因此子查询的结果是单列或多列或单行或多行都行

                   在group by 中使用子查询

                  与select中嵌套类似,要求子查询只能返回单行单列值

                 在having中

    与where中嵌套类似,只能用到聚合函数

    在order by中:与select中嵌套类似,要求子查询只能返回单行单列值

    Union :是一种联合两条或以上查询的运算符

    类似多条查询结果,相组合的效果

    语法:select  列1,列2    from1

              Union

            select  列3,列4    from2

    使用它:;结构是一样查询的列数,自动去除重复的行,结果使用拼接

    Union all :与union不同的地方:保留重复行

  • 相关阅读:
    CodeForces 825G"Tree Queries"(选根建树)
    技术日记
    [express.js 使用笔记] ajax询问数据,却显示在浏览器上,该怎么办?
    node.js 基础和文件操作 笔记
    JSON 笔记
    CSS 学习笔记(一)选择器
    cf1321E
    [学习笔记] 后缀数组
    Python 编程练习
    《明朝那些事儿》 读书笔记
  • 原文地址:https://www.cnblogs.com/yufei121/p/5141558.html
Copyright © 2020-2023  润新知