分分钟搞懂union与union all
2024-08-21 09:18:19
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;
三、结果分析
最新文章
- java json数据的处理
- Python3使用urllib访问网页
- css简介及相关概念
- 终端&;作业控制&;会话启动过程
- Delphi经验总结(1)
- ORACLE 12C PDB 维护基础介绍
- 算法库:clapack安装配置
- Codeforces GYM 100114 D. Selection 线段树维护DP
- 代码修改mysql字符
- 一行代码解决Android M新的运行时权限问题
- linux/module.h: No such file or directory 内核模块编译过程
- get get_children方法
- 关于Select * 与Select 字段名 的问题!
- 微信JS-SDK开发 入门指南
- 通过云主机(网关机)远程登录内网mysql
- Linux 命令——tee 重定向到文件并打印到屏幕
- mybatis 开发规范
- Android 开发 获取设备信息与App信息
- CSS-联合选择器
- Java并发编程:CountDownLatch、CyclicBarrier和 Semaphore
热门文章
- Django具体操作(三)
- EasyUI Dialog 对话框默认不弹出和关闭清空对话框内容
- Tomcat安装、配置和部署
- bootstrap 折叠collapse失效
- [z]dbms_stats.lock_table_stats对于没有统计信息的表分区同样有效
- redhat 5.6安装wireshark
- webpack搭建自己的项目
- linux下的压缩命令
- C# oracle 日期型字段,使用参数传值时,遇到ORA-01810: format code appears twice错误
- 解决sublime3不能编辑插件default settings的问题