MySQL中union和unionall区别

 更新时间:2023年04月23日 10:56:27   作者:佛系闯关在路上。  
本文主要介绍了MySQL中union和unionall区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

union:对多个结果集进行并集操作,不包括重复行,同时进行排序。

union all:对多个结果集进行并集操作,包括重复行,不进行排序。

查询部门小于30号的员工信息,和部门大于20小于40号的员工信息。

①.先查询部门小于30号的员工信息。

   SELECT 
               employees_id
               ,last_name
               ,salary
               ,department_id
     FROM      employees
    WHERE      department_id < 30; ```

小于30号部门的员工信息

查询部门大于20小于40的员工信息。

   SELECT 
           employees_id
           ,last_name
           ,salary
           ,department_id
     FROM  
           employees
    WHERE 
           department_id BETWEEN 20 and 40;```

20到40号部门的员工信息

③.用union连接两张表

    SELECT 
            employees_id
            ,last_name
            ,salary
            ,department_id
      FROM  
            employees
     WHERE  
            department_id < 30
     UNION
    SELECT 
            employees_id
            ,last_name
            ,salary
            ,department_id
      FROM  
            employees
     WHERE  
            department_id BETWEEN 20 and 40; ```

其结果默认排序并去重,两张表都有30号部门信息,结果只出现一次。

union连接两张表

④.下面用union all连接两张表

     SELECT 
              employees_id                 
              ,last_name                 
              ,salary                  
              ,department_id     
       FROM  
              employees  
      WHERE  
              department_id < 30    
 UNION  ALL
     SELECT                   
              employees_id                  
              ,last_name                  
              ,salary                  
              ,department_id    
       FROM  
              employees   
      WHERE  
              department_id BETWEEN 20 and 40; ```

其结果没有去重,也没有排序,排序结果对比下边结果,先去查询20到40的员工信息,在查小于30的员工信息。

union all连接两张表

⑤.对比查询结果

     SELECT 
             employees_id
             ,last_name
             ,salary
             ,department_id
       FROM  
             employees
      WHERE  
             department_id BETWEEN 20 and 40
  UNION ALL
     SELECT 
             employees_id
             ,last_name
             ,salary
             ,department_id
       FROM  employees
      WHERE  department_id < 30;```

union all去重对比

默认是没有进行排序的。

到此这篇关于MySQL中union和unionall区别的文章就介绍到这了,更多相关MySQL union和unionall内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • win10 64位 MySQL8.0下载和安装教程图解

    win10 64位 MySQL8.0下载和安装教程图解

    这篇文章主要介绍了MySQL下载和安装 win10 64位 MySQL8.0的教程图解,本文图文并茂给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-09-09
  • GROUP_CONCAT的用法

    GROUP_CONCAT的用法

    GROUP_CONCAT的用法...
    2006-12-12
  • MySQL 8.0.18使用clone plugin重建MGR的实现

    MySQL 8.0.18使用clone plugin重建MGR的实现

    这篇文章主要介绍了MySQL 8.0.18使用clone plugin重建MGR的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-12-12
  • MySQL如何查找树形结构中某个节点及其子节点

    MySQL如何查找树形结构中某个节点及其子节点

    这篇文章主要介绍了MySQL如何查找树形结构中某个节点及其子节点问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-06-06
  • percona-toolkit对MySQL的复制和监控类操作教程

    percona-toolkit对MySQL的复制和监控类操作教程

    这篇文章主要介绍了使用percona-toolkit对MySQL进行复制和监控类操作的教程,percona-toolkit是一款强大的MySQL辅助软件,需要的朋友可以参考下
    2015-11-11
  • MySQL使用B+Tree当索引的优势有哪些

    MySQL使用B+Tree当索引的优势有哪些

    这篇文章主要介绍了MySQL使用B+Tree当索引有哪些优势,帮助大家更好的理解和学习使用MySQL,感兴趣的朋友可以了解下
    2021-03-03
  • 详解MySQL下InnoDB引擎中的Memcached插件

    详解MySQL下InnoDB引擎中的Memcached插件

    这篇文章主要介绍了详解MySQL下InnoDB引擎中的Memcached插件,并且给出了实例演示,需要的朋友可以参考下
    2015-04-04
  • Mysql通过存储过程分割字符串为数组

    Mysql通过存储过程分割字符串为数组

    今天小编就为大家分享一篇关于Mysql通过存储过程分割字符串为数组,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-03-03
  • MySQL在线DDL gh-ost使用总结

    MySQL在线DDL gh-ost使用总结

    在本篇内容里小编给大家整理了关于MySQL在线DDL gh-ost使用方法和相关知识点,需要的朋友们学习下。
    2019-02-02
  • Mysql中使用Union—多表合并之行合并

    Mysql中使用Union—多表合并之行合并

    这篇文章主要介绍了Mysql中使用Union—多表合并之行合并,如果我们需要将两个select语句的结果作为一个整体显示出来,我们就需要用到union或者union all关键字,union(或称为联合)的作用是将多个结果合并在一起显示出来,需要的朋友可以参考下
    2023-07-07

最新评论