zoukankan      html  css  js  c++  java
  • 分分钟搞懂union与union all

    SQL UNION 操作符

    UNION 操作符用于合并两个或多个 SELECT 语句的结果集。

    请注意,UNION 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同。

    SQL UNION 语法

    SELECT column_name(s) FROM table_name1
    UNION
    SELECT column_name(s) FROM table_name2
    

    注释:默认地,UNION 操作符选取不同的值。如果允许重复的值,请使用 UNION ALL。

    SQL UNION ALL 语法

    SELECT column_name(s) FROM table_name1
    UNION ALL
    SELECT column_name(s) FROM table_name2
    

    另外,UNION 结果集中的列名总是等于 UNION 中第一个 SELECT 语句中的列名。

    一、前期准备:

    drop table if exists empCN;
    create table empCN (ID INT,Name VARCHAR(20));
    
    drop table if exists empUSA;
    create table empUSA (ID INT,Name VARCHAR(20));
    
    -- 插入数据
    insert into empCN(ID,Name) VALUES(1,'ZhangHua');
    insert into empCN(ID,Name) VALUES(2,'WangWei');
    insert into empCN(ID,Name) VALUES(3,'Cart Thomas');
    insert into empCN(ID,Name) VALUES(4,'YangMing');
    
    
    insert into empUSA(ID,Name) VALUES(1,'Adams John');
    insert into empUSA(ID,Name) VALUES(2,'Bush George');
    insert into empUSA(ID,Name) VALUES(3,'Cart Thomas');
    insert into empUSA(ID,Name) VALUES(4,'Gates Bill');
    
    
    -- 增加Column
    Alter table empCN ADD COLUMN(score int);
    Alter table empUSA ADD COLUMN(score int);
    UPDATE empcn set score=20 where ID=1;
    UPDATE empcn set score=60 where ID=2;
    UPDATE empcn set score=80 where ID=3;
    UPDATE empcn set score=90 where ID=4;
    
    UPDATE empusa set score=20 where ID=1;
    UPDATE empusa set score=45 where ID=2;
    UPDATE empusa set score=29 where ID=3;
    UPDATE empusa set score=68 where ID=4;
    

      二、操作语句

    -- 区分UNION 与 UNION ALL
    -- union 消除重复数据
    SELECT * FROM empCN
    UNION
    SELECT * FROM empusa;
    
    -- 重复数据同样显示
    SELECT * FROM empCN
    UNION ALL
    SELECT * FROM empusa;
    
    -- 数据求和 必须为UNION ALL后的数据加 表别名alisa
    SELECT id,name,sum(score) FROM
    (SELECT * FROM empCN
    UNION ALL
    SELECT * FROM empusa) a
    group by id,name;
    

      三、结果分析

  • 相关阅读:
    配置好IIS中的SMTP服务器
    金秋十月
    "小生"的Google搜索结果
    "苏州大本营"腐败大会第三次顺利召开
    我修改了半年的密码还没有成功修改,dudu你能修改吗?
    好资源大家分享
    利用Google来调用其他网站查询信息
    推荐一本书<<专家门诊——ASP.NET开发答疑200问>>
    谁能给我一个FeedDemon v1.1的序列号或者注册文件
    毕业2月有余,苏州同学腐败第二次大聚会
  • 原文地址:https://www.cnblogs.com/iloverain/p/8794755.html
Copyright © 2011-2022 走看看