csv导入mysql添加字段_将csv格式的数据文件导入/导出数据库+添加新的字段

本文介绍了两种将csv文件导入MySQL数据库的方法,包括使用Navicat的导入向导和通过SQL语句快速导入。同时,也讲解了如何使用SQL语句将数据库表导出为csv文件,强调了导入导出过程中的注意事项和可能出现的问题。
摘要由CSDN通过智能技术生成

最近一直忙于实验室的事情,没有好好更新博客,在抓包的过程中,遇到了很多问题。

因为我常用Wireshark将抓包信息导出为csv文件,这里简单mark一下将csv文件导入/导出到数据库的2种方法:

一.简单,但是稍慢的方法,使用Navicat for MySQL,傻瓜式导入数据库:

流程如下:

安装完成并配置好连接后界面如下:

新建数据库

7d65dd5eb89daa49bf00eea29d080dbe.png

c53eb5722055ecd4b77d916d7c4a24d5.png

进入导入向导

d29defdd8b9e6ea21e80dd99422f8c1a.png

选择导入类型:

4639f22dfcedb674762155af2f5a74f1.png

然后选择文件作为数据源,这里是我之前抓好的包,300w+条抓包记录

542e3f92eea3ab7d45cc5d3e26cd3768.png

这里直接采取默认设置

ef29ec27a31eca23f4468aee3ce47af3.png

同样默认

addba621e857ef42be5c2fc6f61663df.png

自己设置了下表明,新建了表

c54621ea7ed1ac95d2d57634f6a18a74.png

这里是程序根据文件内容进行的猜测,注意要修改下数据类型,并根据需要做相应调整,这里有点不太好,目前只找到了通过方向键“下”来添加,没有其他操作,如果增加的数据记录没有填写,则自动删除。

84d7f414d9bbf44b3e08c0fdea62a61e.png

我将包的信息缩减到只用我需要的,这样抓取的信息就从1G锐减到200+M

ece84713d43ce7416769150061765a7c.png

半小时,300w+个记录

这慢的,谁用谁知道~~~~

二.使用SQL语句导入csv为表,速度快!

使用SQL语句可以快速实现大量数据导入数据库的效果。示例如下:

# Windows 中

load data infile '..\\uploads\\test.csv'

into table sampleTableName

fields terminated by ',' optionally enclosed by '"' escaped by ','

lines terminated by '\r\n' ignore 1 lines;

# Linux 中

load data infile '..\\uploads\\test.csv'

into table sampleTableName

fields terminated by ',' optionally enclosed by '"' escaped by ','

lines terminated by '\n' ignore 1 lines;

解释:

load data infile + 文件路径:这里使用了相对路径,我的机子上安装的MySQL在'C:\ProgramData\MySQL\MySQL Server 5.7'中,一般情况下,csv文件中第一行一般是每列属性的名称,因此在导入数据库时应省略第一行

句子中sampleTableName应替换为对应的表的名称

csv文件中,域一般用逗号分隔,域的字段值一般用一对双引号包裹,换行一般用‘\r\n’(windows下),因此我发现一般escaped by+逗号与lines terminated by+'\r\n'有对应关系,如果用escaped by """,即引号分隔,则只有将lines terminated by改成'\n'才能导入,并且此时不能ignore 1 lines;

常见错误:

Error Code 1290:

我机子上安装的是MySQL5.7,

MySQL5.7默认运行的状态是:

Error Code: 1290. The MySQL server is running with the --secure-file-priv option so it cannot execute this statement

这是因为需要导入的文件不再MySQL认为的安全文件夹内,因此MySQL拒绝了导入操作。

使用如下语句可看到MySQL当前认为的安全文件夹,将文件放入文件夹内即可

SHOW VARIABLES LIKE 'secure_file_priv';

三、使用SQL语句将数据库表导出为csv文件:

鉴于Navicat比较容易上手,所以这里只介绍一下如何用SQL语句将数据库表导出为csv文件:

用select语句选择需要导出的字段、表,说明其他附加条件(例如用where子句,还可以进行排序),然后说明导出文件的路径和文件名,注意,如果是MySQL是在 secure-file-priv 选项下运行,则必须将路径调整为上文说过的

secure-file-priv路径,如果不知道,就用show variables like查看,否则报错Error 1209

当然,这样导出要求导出的文件不存在,否则报错 Error 1086

示例如下:

select * from newdb2.dataset where vendor = 'xiaomi' order by time

into outfile 'C:\\ProgramData\\MySQL\\MySQL Server 5.7\\Uploads\\test.csv'

fields terminated by ','

optionally enclosed by '"'

lines terminated by '\r\n';

此示例用到了where 子句和order by 排序,应该够用了

那就这样~see you~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值