将CSV、Excel、XML文件转换为MySQL数据库

在平时的工作中,经常会遇到需要将文件数据导入到数据库中的情况。有些客户之前可能只使用Excel表格作为记录工具,但当数据量达到一定程度或者需要将数据导入到其他系统中时,就会很emo,因为Excel表格虽然方便,但在数据处理和管理方面却存在很多限制。此时就需要将Excel表格中的数据导入到MySQL数据库中,以便更好地管理和利用这些数据。除了Excel表格,有时还需要处理CSV或XML格式的数据,比如某些数据源或第三方平台获取的数据可能就是这两种格式,我遇到过某设备导出的数据为欧洲千分位CSV的格式,用户自己处理起来就更emo了。

给MySQL数据库读取文件赋权

在进行转换前需要先给MySQL数据库赋权,因为MySQL服务器通常配置了一个安全选项,限制了LOAD DATA INFILE语句可以加载文件的目录。这个--secure-file-priv选项就是用于限制LOAD DATA INFILESELECT ... INTO OUTFILE操作可以访问的文件目录。
赋权需要先输入命令查看--secure-file-priv指定的目录路径,随后使用cp命令将要转换的CSV、Excel(需要转化为CSV文件)文件移动到这个路径下:

SHOW VARIABLES LIKE 'secure_file_priv';

在这里插入图片描述
复制文件到查询到的/var/lib/mysql-files/文件夹里(Amazon Dataset.csv是我从kaggle上下载的CSV文件名称):

sudo cp "/数据文件存放的路径/Amazon Dataset.csv" "/var/lib/mysql-files/"

赋予MySQL读取文件的权利:

sudo chown mysql:mysql "/var/lib/mysql-files/Amazon Dataset.csv"
sudo chmod 640 "/var/lib/mysql-files/Amazon Dataset.csv"

重启MySQL服务器:

sudo systemctl restart mysql

CSV文件转换

接下来就可以创建MySQL数据库了,根据原数据格式来建立
原CSV文件格式

CREATE DATABASE amazon;  
USE amazon;

CREATE TABLE IF NOT EXISTS daily_prices (  
    Date DATE PRIMARY KEY,  
    Open FLOAT,  
    High FLOAT,  
    Low FLOAT,  
    Close FLOAT,  
    Adj_Close FLOAT,  
    Volume BIGINT  
);

接下来进行数据读取和转换:CSV文件以 , 作为分割,所以使用FIELDS TERMINATED BY ','提示数据库原文件是,分割格式,ENCLOSED BY '"'指定每个字段的值都应该在双引号内,LINES TERMINATED BY '\n'指定每条记录之间的分隔符是换行符(\n),IGNORE 1 ROWS;指定指定导入数据时忽略文件的第一行。

LOAD DATA INFILE '/var/lib/mysql-files/Amazon Dataset.csv'  
INTO TABLE daily_prices  
FIELDS TERMINATED BY ','  
ENCLOSED BY '"'  
LINES TERMINATED BY '\n'  
IGNORE 1 ROWS;

查询下数据库是否转换成功:

SELECT * FROM daily_prices;

在这里插入图片描述

Excel文件转换

安装gnumeric将xls或xlsx文件转换为.csv文件

udo apt-get install gnumeric

安装完gnumeric后,使用ssconvert命令来将.xls文件转换为.csv文件:

ssconvert 数据.xls 数据.csv

随后既可以像操作CSV文件一样进行操作。

XML文件转换

我从国家数据官网下载的XML格式数据,官网链接:国家数据官网,在下载完数据后先看一下数据结构
在这里插入图片描述
根据数据结构来建立一个数据库:

CREATE DATABASE month_data;  
USE month_data;  
  
CREATE TABLE monthly (  
    id INT AUTO_INCREMENT PRIMARY KEY,  
    indicator VARCHAR(255),  
    time VARCHAR(255),  
    data DECIMAL(10, 2)  
);

接下来编写Python脚本,需要提前下载lxml库lxml库相对于xml库更灵活方便,处理编码方式效果更好:

# import_xml.py
from lxml import etree 
import mysql.connector  
  
conn = mysql.connector.connect(  
    host='主机名',  
    user='用户名',  
    password='用户密码',  
    database='database的名字'  
)  
cursor = conn.cursor()  
tree = etree.parse('network.xml')  
root = tree.getroot() 
  
for record in root.findall('data/record'):  
    indicator = record.find('field[@name="指标"]').text  
    time = record.find('field[@name="时间"]').text  
    data = record.find('field[@name="数据"]').text  
      
    cursor.execute(  
        "INSERT INTO monthly (indicator, time, data) VALUES (%s, %s, %s)",  
        (indicator, time, data)  
    )  
  
conn.commit()  
cursor.close()  
conn.close()

随后在终端运行它:

python3 import_xml.py

运行成功后查询一下:

SELECT * FROM monthly;

转换成功!
在这里插入图片描述

  • 19
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: dbForge Studio for MySQL 是一款专为 MySQL 数据库设计的开发工具,提供了许多方便的功能,如数据库设计和维护、数据导入和导出、SQL 语句生成等。它为 MySQL 开发人员提供了一个高效和易用的环境,帮助他们更轻松地开发和维护 MySQL 数据库。 ### 回答2: dbForge Studio for MySQL是一款强大的MySQL数据库管理和开发工具,旨在为MySQL服务器和数据库设计师提供高效和可靠的解决方案。它集成了多个功能强大的工具,支持MySQL各种版本,包括MySQL 8.0、MariaDB 10.4、Percona 8.0等,并支持多种操作系统,如Windows、macOS和Linux。  dbForge Studio for MySQL提供了广泛的功能和工具,如数据比较和同步、数据导入和导出、数据库备份和还原、查询构建器、视图和存储过程编辑器、代码片段、生成器和可视化设计器、调试器和优化器等。其中,数据比较和同步功能是工具的重点之一,可以帮助用户比较和同步任意两个MySQL数据库或表的数据和结构,支持手动和自动同步方式,并提供了灵活的过滤功能和详细的日志报告。 此外, dbForge Studio for MySQL还提供了强大的查询构建器和可视化设计器,使用户能够轻松地构建和优化他们的查询,并生成可读性更好的代码。同时,它还提供了各种下拉菜单、自动完成和语法高亮等功能,为用户提供更好的开发体验。  总之,dbForge Studio for MySQL是一个功能强大的MySQL数据库管理和开发工具,可以提高用户的工作效率和数据库处理能力,同时使数据库管理和开发变得更加简单和便捷。 ### 回答3: DBforge Studio for MySQL是一种功能强大且易于使用的数据库设计和管理工具,它可以帮助开发人员和数据库管理员快速创建,管理和维护MySQL数据库。 该工具具有丰富的功能集,包括可视化的数据库设计器,可配置的查询生成器,数据导入和导出工具,数据比较和同步工具以及访问控制和安全性功能等等。 可视化的数据库设计器允许用户快速创建数据库模式,包括表格,视图和列,以及设置关系和约束等。生成的SQL代码可自动转换MySQL命令,节省了手工编写和验证代码的时间和精力。 DBforge Studio for MySQL还提供了可配置的查询生成器,使用户可以快速创建和修改复杂的查询。 这个功能还允许用户将查询保存为模板,以便以后重复使用。 数据导入和导出工具提供了易于使用的界面,可快速导入和导出多种文件格式,如CSVExcelXML和JSON等。 数据比较和同步工具允许用户比较和同步不同数据库之间的数据,这对于将生产数据库与测试数据库同步非常有用。 DBforge Studio for MySQL还具有一些访问控制和安全功能,如密码保护,用户管理和角色分配等,可以帮助保护数据库免受未授权的访问和攻击。 总之,DBforge Studio for MySQL是一个非常有用的工具,它为MySQL数据库管理提供了一整套功能,从设计和建模到管理和维护。 它的易用性和可定制性使得它非常适合新手和专业人士使用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值