数据库 组合查询

组合查询

结构: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不同的地方:保留重复行

posted @ 2016-01-19 11:06  木古章鱼  阅读(388)  评论(0编辑  收藏  举报