当前位置: 首页 > news >正文

33.表复制和去重

1.表结构的复制(LIKE)

当我们想复制一个表的时候,首先需要创建一个与被复制表相同结构的表。这时候就要用到关键字like

语法使用:

create table table_name LIKE temp_table

示例:复制一个和表emp(老朋友了)相同结构的mytable_01

create table mytable_01 like emp;

查看一下该表的结构:

desc mytable_01;

2.把一个表的记录插入到另外一张表

在以往我们学到过的知识当中,对一个表进行插入数据时的语句是这样的:

#往tbl_account这个表插入数据
INSERT INTO `tbl_account` (`id`,`name`,`user_age`,`money`)VALUES (3,'张三',26,3000)

一条条的插入,还要做到字段与数值相对应。

现在我们需要将emp表中的数据全部复制到上一节创建的mytable_01中去,可以直接使用select语句查询emp表中的数据直接插入。

语法:

INSERT INTO table_name select * from temp_table;

示例:将emp表中记录全部复制到mytable_01中去。

insert into mytable_01 select * from emp;

完成。

3.蠕虫复制

有时为了对某个sql语句进行效率测试,我们需要海量数据时,可以使用此法为表创建海量数据。此法也叫自我复制,实际上用的还是上一节的语句。

示例:将mytable_01这张表中的记录复制到几十万条。

说直白点就是把自己的记录不停往自己里面插入,以次方级自增。

/*把自己的记录往自己里面插入*/
insert into mytable_01 select * from mytable_01;

执行1次:

执行2次:

执行14次:

可以看到已经有二十多万条记录了。

4.表的去重

现在要对刚才自增到了二十多万条记录的数据库表mytable_01进行去重,也即还原到最开始的14条不重复记录。

思路:
(1) 先创建一张临时表 my_tmp ,该表的结构和 my_tab01 一样
(2) 把 my_tmp 的记录通过 distinct 关键字处理后把记录复制到 my_tmp
(3) 清除掉 my_tab01 记录
(4) 把 my_tmp 表的记录复制到 my_tab01
(5) drop 掉临时表 my_tmp

(1)先创建一张临时表 my_tmp ,该表的结构和 my_tab01 一样

create table my_tmp like mytable_01;

(2)把 my_tmp 的记录通过 distinct 关键字处理后把记录复制到 my_tmp

insert into my_tmp select distinct * from mytable_01;

(3)清除掉 my_tab01 记录

delete from mytable_01;

(4)把 my_tmp 表的记录复制到 my_tab01

insert into mytable_01 select distinct * from my_tmp;

(5)drop 掉临时表 my_tmp

drop table my_tmp;

这一切好像最开始学c语言时交换两个变量的数值一样使用临时变量来完成一样。

相关文章:

  • SpringMVC系列(五)(响应实验以及Restful架构风格(上))
  • maven多模块、多层级项目 如何只构建指定的项目
  • Web基础关键_004_CSS(二)
  • 在 CentOS Stream 10 上搭建 Kubernetes 集群并支持开发调试与日志查看
  • ZooKeeper深度面试指南一
  • React环境搭建及语法简介
  • PIC单片机MPLAB编译报错的一些问题及解决方法
  • python多线程详细讲解
  • Java-Matcher类
  • Grab×亚矩阵云手机:以“云端超级节点”重塑东南亚出行与数字生活生态
  • 【21】C9800配置PSK认证的WLAN
  • 【git教程】git add 命令讲解
  • 如何让ChatGPT模仿人类写作,降低AIGC率?
  • zookeeper Curator(2):Curator的节点操作
  • var let setTimeOut 经典面试题
  • 第十节:Vben Admin 最新 v5.0 (vben5) 快速入门 - 菜单管理(下)
  • 前端与 Spring Boot 后端无感 Token 刷新 - 从原理到全栈实践
  • KS值:风控模型的“风险照妖镜”
  • 投稿爱思唯尔期刊,是什么Manuscript without Author Details,LaTeX文件怎么上传
  • 能否仅用两台服务器实现集群的高可用性??