zoukankan      html  css  js  c++  java
  • SQL UNION操作符

          在维护人事系统的时候,遇到两张无关的表的联合问题,就是将两张相互之间没有字段可以联系的表,但具有共同的名字的字段,合在一个报表中显示出来。这时就引出了union的使用。

          什么是UNION?

            它sql语句中的一种操作符,可以合并多个select语句结果集。但是需要注意的是select语句必须具有相同数量的列,且列必须具有相同的数据类型。

          基本语法:

    <span style="font-size:24px;">Selectcolumn_name(s) from table_name1
    Union
    Select column_name(s)from table_name2</span>

          实例:

           将两张表user1和user2合并起来,数据如下:      

     

    表User1
    id        name sex
    1 张三
    2 李四
    3 王五

     

    表User2
    id       name sex   
    1 张三
    2 马六
    3 小七
          

           Sql 语句是:

    <span style="font-size:24px;">select * from user1
    union
    select * from user2</span>


            结果:

    id      name sex   
    1 张三
    2 李四
    2 马六
    3 王五
    3 小七

           使用union会将重复的数据自动去除,如果想保留重复的数据,可以使用union all操作符进行连接,如下: 

    <span style="font-size:24px;">select * from user1
    union all
    select * from user2</span>

          结果如下:

    id           name      sex       
    1 张三
    2 李四
    3 王五
    1 张三
    2 马六
    3 小七

           这样可以将两张表的数据合并在一起,但是还没有达到我想要的效果,我想要的是所有数据按照递增或递减的顺序进行显示,这样我可以知道总共有多少条数据,而不是上述的两种结果,仅仅是将原数据表的数据取出来。

           在上述的基础上我们可以继续优化,

    <span style="font-size:24px;">select ROW_NUMBER() over(order by id) as '序号',id,name,sex from
    (select * from user1
    union all
    select * from user2)k</span>

          显示结果如下: 

    序号  id       name  sex   
    1 1 张三
    2 1 张三
    3 2 马六
    4 2 李四
    5 3 王五
    6 3 小七


          小结:

             SQL语句中有很多操作符可以使我们的操作变得更加简单,不需要做太多的查询而得到我们想要的结果。熟练掌握这些操作符的用法会给我们的操作带来极大的方便,大大提升我们的效率,达到事半功倍的效果。

  • 相关阅读:
    python OS 模块 文件目录操作
    python模块 OS
    Django的设计模式
    python自动开发之(算法)第二十七天
    机器模型简介(二):广义线性模型
    机器模型简介(一):线性回归
    python爬虫成长之路(三):基础爬虫架构及爬取证券之星全站行情数据
    oracle sql 基础(六):数据控制语言(用户及权限管理)
    oracle sql 基础(五):数据定义语言(创建和管理序列、索引、同义词)
    oracle sql 基础(四):数据定义语言(创建和管理表、视图)
  • 原文地址:https://www.cnblogs.com/victor-grace/p/7253772.html
Copyright © 2011-2022 走看看