union和union all关键字
功能介绍:
union:查询出结果集并进行并集操作,去除重复记录,只保留一个
union all:查询出结果集并进行并集操作,不去除重复记录
(1)union 和 union all的使用规则:
a.一般使用在DQL(select)语法中,去除重复记录
b.在使用联合查询时,各查询语句所要查询的字段的类型不一定要一样,但查询的字段数量要一致,
如果前者查询语句的所要查询的字段数量比后者长,或反之,则会报错。
c.联合查询时,会将第一个查询语句所查询的字段,作为联合查询后的表的字段
d.语法:(1)select 字段名1,字段名2,… from tablename1
union
select 字段名A,字段名B,… from tablename2;
(2)select 字段名1,字段名2,… from tablename1
union all
select 字段名A,字段名B,… from tablename2;
实操:
(1) t_user 和 t_user1的数据如下:
他们两张表的name字段中有相同的数据:KING 和 SMITH
(2)进行union操作:
a.查询出t_user/t_user1表的name字段的所有数据,取并集去除KING 和 SMITH 只保留一个
b.查询出t_user/t_user1表的id和name字段的所有数据,取并集
b.查询出t_user的id,name,查询出t_user1的id、name、sex,进行并集操作因为字段数量长度不一样,所以会报错
c.查询出t_user的id,name,查询出t_user1的name、sex,进行并集操作,虽然字段的类型不一样,但只要字段数量长度一样就能联合查询出来,
且第一个查询语句所查询的字段,将作为联合查询后的表字段。
(3)进行 union all 操作:
将查询后的结果集进行完全取并集,不去重,我们先把t_user1的第2条第3条数据更改name为KING,以保证有相同的id和name数据