包含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 導入資料庫中。

原創文章,作者:DATN,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/141388.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
DATN的頭像DATN
上一篇 2024-10-04 00:18
下一篇 2024-10-04 00:18

相關推薦

發表回復

登錄後才能評論