如何将CSV文件导入MySQL数据库

如何将CSV文件导入MySQL数据库,第1张

在命令提示符下面,打入:mysqlimport --fields-optionally-enclosed-by=""" --fields-terminated-by=, --lines-terminated-by="\r\n" --user=YOUR_USERNAME --password YOUR_DATABASE YOUR_TABLEcsv上面的选项可谓见名知意,包括各域的符号为(“);各域分隔符为(,);DOS下的回车换行符为\r\n;然后是用户名,提示输入密码,YOUR_DATABASE换成你的数据库名,YOUR_TABLE你的表名,文件最好和表名一致,当然表名可以更改。

导入 *** 作 存在特殊字符情况的处理 Book1csv 编号,名称,说明1,测试数据1,"测试CSV文件中,有逗号"2,测试数据2,"测试CSV文件中有""双引号"""3,测试数据3,"测试CSV文件中,有逗号和""双引号"""4,测试数据

将外部数据导入(import)数据库是在数据库应用中一个很常见的需求。其实这就是在数据的管理和 *** 作中的ETL

(Extract,

transform,

load)的L

(Load)部分,也就是说,将特定结构(structure)或者格式(format)的数据导入某个目的地(比如数据库,这里我们讨论MySQL)。

ETL

Process

本文要讨论的内容,是如何方便地将多种格式(JSON,

Text,

XML,

CSV)的数据导入MySQL之中。

本文大纲:

将Text文件(包括CSV文件)导入MySQL

将XML文件导入MySQL

将JSON文件导入MySQL

使用MySQL

workbench的Table

Data

Export

and

Import

Wizard进行JSON或CSV文件的导入导出

1

将Text文件(包括CSV文件)导入MySQL

这里我们的讨论是基于一个假定,Text

file和CSV

file是有着比较规范的格式的(properly

formatted),比如说每行的每个数据域(field)之间是由一个共同的分隔符(比如tab:

\t)分隔的。

那么首先,你需要根据你的数据的格式(有哪些域),来设计好数据库的对应的表

(的Schema)。

举个例子,要处理的Text文件或者CSV文件是以\t作为分隔符的,每行有id,

name,

balance这么三个数据域,那么首先我们需要在数据库中创建这个表:

CREATE

TABLE

sometable(id

INT,

name

VARCHAR(255),

balance

DECIMAL(8,4));

创建成功以后就可以导入了。 *** 作方式很简单:

LOAD

DATA

LOCAL

INFILE

'你的文件路径(如~/filecsv)'

INTO

TABLE

sometable

FIELDS

TERMINATED

BY

'\t'

[ENCLOSED

BY

'"'(可选)]

LINES

TERMINATED

BY

'\n'

(id,

name,

balance)

这里要注意的是,我们需要开启local-infile这个MySQL的配置参数,才能够成功导入。究其原因,从MySQL的Manual中可以看到这么一段话:

LOCAL

works

only

if

your

server

and

your

client

both

have

been

configured

to

permit

it

For

example,

if

mysqld

was

started

with

--local-infile=0,

LOCAL

does

not

work

See

Section

616,

“Security

Issues

with

LOAD

DATA

LOCAL”

由于工作需要,经常需要将mysql数据库中的数据导出到excel表格,或者需要将excel表格数据导入到mysql数据库,我的方法是先将它们都转换成一种中间数据格式csv(execl数据可以直接导出为csv格式,csv格式也可以直接用excel打开)。下面介绍一下 *** 作步骤:

csv导入mysql

load

data

infile

'c:\\users\\username\\desktop\\testcsv'

into

table

`table`

fields

terminated

by

','

optionally

enclosed

by

'"'

escaped

by

'"'

lines

terminated

by

'\n';

mysql导入csv

select

from

`table`

load

data

infile

'c:\\users\\username\\desktop\\testcsv'

fields

terminated

by

','

optionally

enclosed

by

'"'

escaped

by

'"'

lines

terminated

by

'\n';

如果乱码,可用相关编辑器打开csv文件,另存为utf-8的csv

导入 *** 作

存在特殊字符情况的处理

Book1csv

编号,名称,说明

1,测试数据1,"测试CSV文件中,有逗号"

2,测试数据2,"测试CSV文件中有""双引号"""

3,测试数据3,"测试CSV文件中,有逗号和""双引号"""

4,测试数据4,普通数据

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

mysql> CREATE TABLE Test_Book1 (

-> id int,

-> name VARCHAR(10),

-> data VARCHAR(100)

-> );

Query OK, 0 rows affected (005 sec)

下面的 lines terminated by '\r\n' 是 要求换行符号,为 windows的换行

下面的 ignore 1 lines是 忽略第一行的标题行。

mysql> LOAD DATA INFILE 'f:/Book1csv'

-> INTO TABLE Test_Book1

-> FIELDS TERMINATED BY ','

-> OPTIONALLY ENCLOSED BY '"'

-> lines terminated by '\r\n'

-> ignore 1 lines

-> (id, name, data);

Query OK, 4 rows affected (000 sec)

Records: 4 Deleted: 0 Skipped: 0 Warnings: 0

mysql> select from test_book1;

+------+-----------+--------------------------------+

| id | name | data |

+------+-----------+--------------------------------+

| 1 | 测试数据1 | 测试CSV文件中,有逗号 |

| 2 | 测试数据2 | 测试CSV文件中有"双引号" |

| 3 | 测试数据3 | 测试CSV文件中,有逗号和"双引号" |

| 4 | 测试数据4 | 普通数据 |

+------+-----------+--------------------------------+

4 rows in set (000 sec)

以上就是关于如何将CSV文件导入MySQL数据库全部的内容,包括:如何将CSV文件导入MySQL数据库、怎么将csv的数据导入mysql、如何将 JSON,Text,XML,CSV 数据文件导入 MySQL等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10187606.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存