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_userid,name,查询出t_user1id、name、sex,进行并集操作因为字段数量长度不一样,所以会报错

c.查询出t_userid,name,查询出t_user1name、sex,进行并集操作,虽然字段的类型不一样,但只要字段数量长度一样就能联合查询出来,

 且第一个查询语句所查询的字段,将作为联合查询后的表字段。

(3)进行 union all 操作:

将查询后的结果集进行完全取并集,不去重,我们先把t_user1的第2条第3条数据更改name为KING,以保证有相同的id和name数据

猜你喜欢

转载自www.cnblogs.com/ibear/p/12675460.html