JAVA开发(手工处理数据库表数据的一些示例算法)

news2024/12/26 15:06:14

背景:

在项目开发中,有时候需要手动处理一下数据库表的数据。涉及到数据得到备份、恢复,清洗,计算,合并等操作。

举例记录一下最近对数据的一些处理过程。

1、对数据表进行数据量统计

select count(*) from  table_a;

2、记住数据库表的数据,然后进行备份

create table table_a_bak as  select * from  table_a where  1 = 1;

3、我们再对数据进行处理之前一定记得进行备份,以防错误的操作后能将数据恢复,或最大程度的恢复,这是一个好习惯。然后我们才开始对数据进行处理。

4、建立一个临时表导入需要处理的数据。一般临时表最好是 tmp_开头,这也是一个好习惯,方便数据计算完后,对临时表进行删除,以免误删。

create table  tmp_table_a as  select * from  table_a where 1 = 2;

5、对表数据进行去重的操作,先查询看看有多少手机号重复的记录。

select count(1)  from  (
select  phone ,count(1) cn  from  table_a where  phone is  not  null   group  by phone ) t where t.cn > 1  ;

6、多数据进行去重。先对table_a表进行接收

drop  table  tmp_table_a_1;
create  table  tmp_table_a_1 as
select * from  (
select  phone ,count(1) cn  from  table_a  where  phone is  not  null   group  by phone ) t where t.cn > 1  ;

7、tmp_table_a_1增加一个自增的id字段,先建立一个SEQUENCE

CREATE SEQUENCE tmp_table_a_id_seq
START WITH 1
INCREMENT BY 1
NO MINVALUE
NO MAXVALUE
CACHE 1;

给id增加自增约束

alter table tmp_table_a_1 alter column id set default nextval('tmp_table_a_id_seq'); 

8、将数据重新插回tmp_table_a_1 ,先清空tmp_table_a_1

清空数据

truncate table tmp_table_a_1 ;

插回数据

INSERT INTO tmp_table_a_1 
( user_id, phone, user_name, id_card, wx_account, state, app_id, app_name, head_icon, sex, sex_name, reg_time, user_state, user_state_name, open_id, opt_user, birthday_type, birthday, org_name, last_trading_time, org_code, union_id, orig_phone, update_time, belong_code, belong_name, data_type, client_num, client_name, country_code, inviter, channel_id, channel_name, company)
select  user_id, phone, user_name, id_card, wx_account, state, app_id, app_name, head_icon, sex, sex_name, reg_time, user_state, user_state_name, open_id, opt_user, birthday_type, birthday, org_name, last_trading_time, org_code, union_id, orig_phone, update_time, belong_code, belong_name, data_type, client_num, client_name, country_code, inviter, channel_id, channel_name, company
from  table_a;

9、去重操作

DELETE FROM tmp_table_a_1
WHERE id
NOT IN (
SELECT max(id)
FROM tmp_table_a_1
GROUP BY  phone
);

10、A表中有但是B表中没有的数据

drop table if exists tmp_table_a_2;
create table tmp_table_a_2 as
select  t1.* from tmp_table_a_1 t1
left join tmp_table_b_1 t2
on t1.phone = t2.phone
where t2.phone is null;

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/592183.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

API接口的重要性和好处|附加淘宝api接口展示案例|商品数据采集演示

随着互联网的发展,API接口已经成为许多企业进行信息交流和数据管理的重要工具。通过API接口,企业之间能够快速、可靠地进行数据传输和信息共享,从而提高了企业的生产效率和服务质量。以下是API接口的重要性和好处的文章: 1.提高生…

Zabbix从入门到精通以及案例实操系列

1、Zabbix入门 1.1、Zabbix概述 Zabbix是一款能够监控各种网络参数以及服务器健康性和完整性的软件。Zabbix使用灵活的通知机制,允许用户为几乎任何事件配置基于邮件的告警。这样可以快速反馈服务器的问题。基于已存储的数据,Zabbix提供了出色的报告和…

5.2.2 IP地址的分配和使用

5.2.2 IP地址的分配和使用 我们已经学习了分类的IP地址,我们就来一起学习一下在实际的应用中IP地址是如何分配和使用的。在最初的IP地址编址方案中,因特网的每个物理网络都必须被分配一个唯一的网络地址,该网络上的主机每个主机都使用该网络…

Jenkins——maven 插件配置

文章目录 一、Maven 的集成二、在执行job的机器上安装好maven三、下载 maven 插件四、配置全局工具五、Maven 相关使用1、新建 job2、自由风格 job 中命令行使用 mvn 命令3、构建操作 一、Maven 的集成 在 Jenkins 上构建 Java 项目时需要使用 Maven 来进行构建打包 二、在执…

【笔记】微机原理及接口技术2 -- 存储器与IO接口技术

目录 存储器存储器分类存储器常用性能指标半导体存储器随机存取存储器 RAM动态随机存储器 DRAM三态缓冲器只读存储器 ROM存储器与 CPU 链接存储空间扩展方式内存寻址方法(片选方式)存储器小节思考题 I/O 接口技术IO 接口概述IO 端口编址寻址输入输出控制…

让仓库“零误差”,WMS仓库管理系统助力供应链升级

现代供应链的核心是以消费者和库存管理为中心,通过降低库存来提高产品的流通速度和供应链效率。而在信息技术快速发展的今天,企业的库存管理也面临着新的挑战: 1.仓库货品种类多,数量多,且摆放混乱,加大了查…

RWKV – transformer 与 RNN 的强强联合

在 NLP (Natural Language Processing, 自然语言处理) 领域,ChatGPT 和其他的聊天机器人应用引起了极大的关注。每个社区为构建自己的应用,也都在持续地寻求强大、可靠的开源模型。自 Vaswani 等人于 2017 年首次提出 Attention Is All You Need 之后&am…

SAP-MM-发票行项目格式

目的:SAP提供标准事物代码屏幕变式,但因各个公司运用的方式不同,可采用屏幕变式进行自定义,方便最终用户使用; 方案:采用屏幕变式T-CODE:OLMRLIST对相应事物代码进行调整: 案例&am…

ASCII Unicode UTF-8等等编码介绍

目录 背景 Unicode UTF-8 ISO-8859-1 GB2312和GBK ANSI UTF-16LE 和UTF-16BE UTF-16 LE 和BE是什么 如何处理字节序问题 "带有BOM的UTF-8"又是什么? 背景 由于计算机是美国人发明的,因此最早只有127个字母被编码到计算机中&#x…

1.5k star,搭建一个属于自己或团队的WIKI知识管理系统

项目简介 zyplayer-doc是一款适合团队和个人使用的WIKI文档管理工具,同时还包含数据库文档、Api接口文档。 体验地址:http://zyplayer.com 在线文档:http://doc.zyplayer.com 各模块介绍 zyplayer-doc-manage 文档管理后台 具有项目模块…

ue4技术方向学习路线如何安排?

作为初学者,您可能会感到UE4(Unreal Engine 4)的学习曲线很陡峭。但是,只要您有一个良好的学习路线和资源,就可以轻松地掌握UE4技术方向。下面是一个可以帮助您快速入门UE4技术方向的学习路线安排。 第一阶段&#xff…

【资料分享】TVS二极管

瞬态电压抑制二极管也称为TVS二极管,是一种保护用的电子零件,可以保护电器设备不受导线引入的电压尖峰破坏。 TVS二极管会和要保护的电路并联。 当其电压超过突崩溃准位时,直接分流过多的电流。TVS二极管是箝位器,会抑制超过其崩…

java企业级信息系统开发学习笔记08 初探MyBatis实现简单查询

文章目录 一、学习目标1.了解什么是MyBatis框架2.掌握基于配置文件方式使用MyBatis3.掌握采用接口方式使用MyBatis 二、创建数据库与表1.在数据库中创建一个用户表 三、基于配置文件方式使用MyBatis(一)、创建一个Maven项目(二)、添加相关依赖&#xff0…

Android H5移动调试技巧——Chrome /Edge /QQ Inspect

Android APP项目原生的Html5做,cordova框架技术。苦于调试不便。稍微了解一下浏览器调试插件。 Chrome Inspect 使用该调试技巧,调试移动端中—自身开发的Hybrid APP、微信、UC、QQ、抖音等打开的页面,就像在电脑chrome调试一样方便。 手机…

WSL2 Ubuntu 22.04.02LTS + MobaXterm配置问题

参考了几篇文章: https://zhuanlan.zhihu.com/p/150555651https://zhuanlan.zhihu.com/p/150555651 https://zhuanlan.zhihu.com/p/151853503https://zhuanlan.zhihu.com/p/151853503 https://github.com/QMonkey/wsl-tutorial/issues/11https://github.com/QMon…

# jmeter 实战使用

jmeter 实战使用 官网 Apache JMeter - Apache JMeter™ Apache JMeter应用程序是开源软件, 一个纯Java应用程序设计 加载测试功能行为并测量性能。它是 最初设计用于测试 Web 应用程序,但具有 自扩展到其他测试功能后。 性能测试目的 提高页面响应速度…

1.5 初探Spring AOP

一、提出游吟诗人唱赞歌任务 骑士执行任务前和执行任务后,游吟诗人唱赞歌 1、采用传统方式实现 修改day04子包的勇敢骑士类 修改day04子包里的救美骑士类 执行测试类 - TestKnight 二、采用配置方式使用AOP 1、创建本讲所需子包 在net.hf.spring包里创建da…

Hibernate框架【三】——基本映射——一对一映射

系列文章目录 一对一映射 系列文章目录前言一、一对一映射是什么&#xff1f;二、一对一单向关联①一对一主键关联映射②一对一唯一外键映射 三、一对一双向关联①一对一主键关联映射&#xff08;双向关联Person<----->IdCard&#xff09;②h一对一唯一外键关联映射&…

3ds MAX 绘制简易沙发

目的是用3dMAX绘制简易的沙发 用到了长方体、圆角长方体、平移、旋转、阵列、组等操作 首先按照前面的教程创建一个圆角长方体&#xff0c;参数如图&#xff1a; 接着用圆柱体绘制靠背的支柱&#xff0c;为了方便使用阵列一次绘制出十个 我们设置的沙发长度为1&#xff4d;这…

Kibana:为 Kibana 定制自己的品牌 - 8.8

我还记得我刚加入 Elastic 的时候&#xff0c;那个时候在论坛里看到一个贴上是关于如何替换 Kibana 中的 Logo 从而重新定制自己的品牌。在今天&#xff0c;我非常高兴地告诉你&#xff0c;在 Elastic Stack 8.8 中&#xff0c;这个是完全可以通过配置的方式来实现的。 安装 如…