组合多个查询

紫色代表一级目录
粉红代表二级目录
蓝色代表三级目录
红色代表关键字
橙色代表说明

单查询与组合查询
  单查询实例
  在这里插入图片描述
  使用了操作符UNION
  组合多个查询_第1张图片
组合查询操作符
  UNION
    UNION 操作符可以组合两个或多个 SELECT 语句的结果,不包含重复的记录。换句话说,如果某行的输出存在于一个查询结果里,那么其他查询结果同一行的记录就不会再输出了。在使用UNION操作符时,每个SELECT语句里必须选择同样数量的字段、同样数量的字段表达式、同样的数据类型、同样的次序——但长度不必一样。
    语法:
    组合多个查询_第2张图片
    例:
    在这里插入图片描述
  UNION ALL
    UNION ALL操作符可以组合两个SELECT语句的结果,并且包含重复的结果。其使用规则与UNION一样,它与UNION基本上是一样的,只是一个返回重复的结果,一个不返回。
    语法:
    组合多个查询_第3张图片
    例:
    在这里插入图片描述
  INTERSECT
    INTERSECT 可以组合两个 SELECT 语句,但只返回第一个 SELECT 语句里与第二个SELECT语句里一样的记录。其使用规则与UNION操作符一样。目前MySQL5.0尚不支持INTERSECT,但SQL Server和Oracle全都提供支持。
    语法:
    组合多个查询_第4张图片
    例:
    在这里插入图片描述
  EXCEPT
    EXCEPT 操作符组合两个 SELECT 语句,返回第一个 SELECT 语句里有但第二个SELECT语句里没有的记录。同样的,它的使用规则与UNION操作符一样。目前MySQL并不支持EXCEPT。而在Oracle中,则使用MINUS操作符来实现同样的功能。
    语法:
    组合多个查询_第5张图片
    例:
    在这里插入图片描述
组合查询里使用ORDER BY
  ORDER BY子句可以用于组合查询,但它只能用于对全部查询结果的排序,因此组合查询里虽然可能包含多个查询或SELECT语句,但只能有一个ORDER BY子句,而且它只能以别名或数字来引用字段。
  语法:
  组合多个查询_第6张图片
  例:
  在这里插入图片描述
组合查询里使用GROUP BY
  与ORDER BY不同的是,GROUP BY子句可以用于组合查询中的每一个 SELECT语句,也可以用于全部查询结果。另外,HAVING子句也可以用于组合查询里的每个SELECT语句。
  语法:
  组合多个查询_第7张图片
  例:
  组合多个查询_第8张图片

你可能感兴趣的:(SQL总结)