mysql数据库收集和导入数据集

您所在的位置:网站首页 如何向mysql中导入数据库表 mysql数据库收集和导入数据集

mysql数据库收集和导入数据集

#mysql数据库收集和导入数据集| 来源: 网络整理| 查看: 265

mysql数据库收集和导入数据集

 

环境

linux ubuntu 18.04LTS mysql-5.7.31  

数据集的收集

原贴【资源】史上最全数据集汇总

首先试了一下World Bank   在这里插入图片描述  在这里插入图片描述   下载该数据集时出现submit始终无法点的情况,以待解决   在这里插入图片描述   再尝试RBI数据集  在这里插入图片描述首页就能看到许多数据集,可以用chrome翻译成中文 随便点一个: 在这里插入图片描述 在这里插入图片描述  点击pdf的图标,再点击pdf里的超链接,可以直接下载到数据集 在这里插入图片描述随便下一个,数据集如图所示: 在这里插入图片描述再将该表转为csv格式,方便后续数据库读取 ELECT07022016_FEB18.csv   数据集导入mysql数据库 mysql小数类型的使用

原贴:SQL Server 小数类型(float 和 decimal)

在数据库中创建表 create table ELECT07022016_FEB18( data varchar(200), rtgs_vo decimal(10,2),rtgs_va decimal(10,2), neft_vo decimal(10,2),neft_va decimal(10,2), cts_vo decimal(10,2),cts_va decimal(10,2), imps_vo decimal(10,2),imps_va decimal(10,2), nach_vo decimal(10,2),nach_va decimal(10,2), upi_vo decimal(10,2),upi_va decimal(10,2), ussd_vo decimal(10,2),ussd_va decimal(10,2), dccp_vo decimal(10,2),dccp_va decimal(10,2), ppi_vo decimal(10,2),ppi_va decimal(10,2), mb_vo decimal(10,2),mb_va decimal(10,2), total_vo decimal(10,2),total_va decimal(10,2));

查了下load data infile的用法,暂时没找到忽略最后几行的办法,因此使用了较大的varchar来存储第一格 下图是看最长的一个有多少字符 在这里插入图片描述

看看创建的表 在这里插入图片描述创建成功,然后感觉名字太复杂了,不好操作,改一下名:

rename table ELECT07022016_FEB18 to eps_rd;

在这里插入图片描述3. 用load导入到数据库中

参考:mysql中的load data infile用法

load data infile '/home/hjy/桌面/everyday-learning2/2020-9-15/ELECT07022016_FEB18.csv' into table mysql_learning.eps_rd character set gb2312 fields terminated by ',';

出现报错: ![在这里插入图片描述](https://img-blog.csdnimg.cn/20200915142314724.png#pic_center

参考:将csv 文件存入mysql 报错The MySQL server is running with the --secure-file-priv option so it cannot execute,显示secure_file_priv文件路径

show variables like '%secure%';

在这里插入图片描述然后将文件拷贝至该路径下(文章中可以永久修改,解决该问题,但要重启mysql,为了简单起见,直接复制)

sudo cp /home/hjy/桌面/everyday-learning2/2020-9-15/ELECT07022016_FEB18.csv /var/lib/mysql-files/

再次导入,发生如下报错: 在这里插入图片描述参考:mysql 用load data 导入数据时,数据被截断问题

set sql_mode='';

再次运行,导入成功: 在这里插入图片描述 在这里插入图片描述4. 后续操作

删除为空的行 delete from eps_rd where data=''; 拆分表 create table month_eps as (select * from eps_rd where data like '___-%'); delete from month_eps where data='Feb-18';

在这里插入图片描述

把18年每天的数据分出来还有点麻烦,这里用了正则表达式

参考:MySQL正则表达式

create table feb_esp as select * from eps_rd where data regexp '^[0-9]' and data not like '_.%';

在这里插入图片描述

再将其它信息存起来

create table note as select data from eps_rd where data like '____%' and data not like '___-__';

在这里插入图片描述

最后,我想给更改一下列名,把data改成notes可在网上没查到方法(好多写的是用sp_name更改,但我不会用),说来惭愧。 我的java IDE:IntelliJ IDEA里有连结数据库的功能,然后用里面的工具成功更改列名。 在这里插入图片描述

alter table note change data notes varchar(200) null;

over!



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3