Java登陆第六天——SQL之表复制,表去重,合并查询

表复制

简单说就是:插入数据的是一个子查询

insert into 表名 (子查询);

image

栗子:复制pon表两次
SQL语句:

insert into pon (select * from pon);

程序运行结果:
image

表去重

简单说就是:依靠另一张新表和distinct关键字+子查询

insert into 表名 (distinct+子查询);

栗子:去重表pon
SQL语句:

--创建一张tmp_pon 表,表结构同pon。(仅结构,没数据)
create table tmp_pon like pon;

insert into tmp_pon (select distinct * from pon);
drop table pon;
alter table tmp_pon rename as pon;

程序运行结果:
image

合并查询

简单说就是:利用union allunion关键字合并两个查询语句的结果。

--使用union all合并的查询不会取消重复行。
查询语句1 union all 查询语句2;

--使用union合并的查询会取消重复行。
查询语句1 union  查询语句2

image

union all

使用该关键字不会去重。

栗子:合并查询person表中,性别W和性别M的数据。
SQL语句:

select * from person where sex='M'
union all
select * from person where sex='W';

程序运行结果:
image

union

使用该关键字会去重。

栗子:合并查询pon表。
image
SQL语句:

select * from pon
union
select * from pon;

程序运行结果:
image

以上举例都有局限性,如果两次查询的表都不是同一张表就可以体现合并查询的好处。

posted @ 2023-11-14 14:55  rowbed  阅读(32)  评论(0编辑  收藏  举报