您的位置:

包含mysql循环导入xml文件的词条

本文目录一览:

如何将 JSON,Text,XML,CSV 数据文件导入 MySQL

将外部数据导入(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

'你的文件路径(如~/file.csv)'

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

6.1.6,

“Security

Issues

with

LOAD

DATA

LOCAL”.

怎样将XML文件导入MYSQL

1、输出数据库版本变量为xml格式

Shell mysql -X -uroot -proot -e "use test; show variables like '%version%';"

参数X表示生成xml格式的输出 , 参数e表示执行后面的命令

如何将xml格式文件导入mysql中

举例说明如下

xml文件名为: text.xml

xml数据文件的结构如下:

node1

node2 name="abc"123/node2

/node1

sql命令如下:

SET @xml = LOAD_FILE('text.xml'); -- 要指定完整的文件位置

SELECT ExtractValue(@xml, '/node1/node2/@name') as name,ExtractValue(@xml, '/node1/node2') as data;

返回数据结果就是:

name | data

abc | 123

怎么把xml数据导入到mysql中

建议导出成CSV格式,然后打开文件,直接COPY后paste row 导入数据库中。