English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

导入数据 MySQL

In questa sezione, vi presentiamo alcune istruzioni di importazione dati semplici di MySQL.

1、Importazione tramite comando mysql

La sintassi del comando mysql per l'importazione è:

mysql -uusername    -ppassword    <  Dati del database da importare (w3codebox.sql)

Esempio:

# mysql -uroot -p123456 < w3codebox.sql

Le istruzioni sopra elencate importeranno l'intero database di backup w3codebox.sql.

2、Comando source  importazione

La clausola source per l'importazione del database richiede di accedere al terminale del database prima di tutto:

mysql> create database abc;      # Creare il database
mysql> use abc;                  # Utilizzare il database creato 
mysql> set names utf8;           # Impostare la codifica
mysql> source /home/abc/abc.sql  # Importare il database di backup

3、Utilizzare  LOAD DATA per importare dati

MySQL fornisce l'istruzione LOAD DATA INFILE per inserire dati. Nell'esempio seguente, il file dump.txt nel percorso corrente verrà letto e i dati del file verranno inseriti nella tabella mytbl del database corrente.

mysql> LOAD DATA LOCAL INFILE 'dump.txt' INTO TABLE mytbl;

 Se viene specificata la parola chiave LOCAL, indica che il file viene letto dal client host secondo il percorso. Se non viene specificato, il file viene letto dal server secondo il percorso.

Puoi specificare chiaramente il carattere di separazione dei valori delle colonne e il segno di fine della riga nell'istruzione LOAD DATA, ma il segno di default è il carattere di posizione e il carattere di nuova riga.

La sintassi delle clausole FIELDS e LINES delle due istruzioni è la stessa. Entrambe le clausole sono opzionali, ma se entrambe vengono specificate, la clausola FIELDS deve apparire prima della clausola LINES.

Se l'utente specifica una clausola FIELDS, le sue clausole (TERMINATED BY, [OPTIONALLY] ENCLOSED BY e ESCAPED BY) sono anche opzionali, ma l'utente deve specificarne almeno una.

mysql> LOAD DATA LOCAL INFILE 'dump.txt' INTO TABLE mytbl
  -> FIELDS TERMINATED BY ':'
  -> LINES TERMINATED BY '\r\n';

LOAD DATA 默认情况下是按照数据文件中列的顺序插入数据的,如果数据文件中的列与插入表中的列不一致,则需要指定列的顺序。

例如,在数据文件中的列顺序是 a,b,c,但在插入表的列顺序为b,c,a,则数据导入语法如下:

mysql> LOAD DATA LOCAL INFILE 'dump.txt' 
    -> INTO TABLE mytbl (b, c, a);

4、使用 mysqlimport 导入数据

mysqlimport 客户端提供了 LOAD DATA INFILEQL 语句的一个命令行接口。mysqlimport 的大多数选项直接对应 LOAD DATA INFILE 子句。

从文件 dump.txt 中将数据导入到 mytbl 数据表中,可以使用以下命令:

$ mysqlimport -u root -p --local mytbl dump.txt
password *****

mysqlimport 命令可以指定选项来设置指定格式,命令语句格式如下:

$ mysqlimport -u root -p --local --fields-terminated-by=":" \
   --lines-terminated-by="\r\n"  mytbl dump.txt
password *****

mysqlimport 语句中使用 --columns 选项来设置列的顺序:

$ mysqlimport -u root -p --local --columns=b,c,a \
    mytbl dump.txt
password *****

mysqlimport 常用选项介绍

选项功能
-d o --delete在新数据导入数据表之前删除数据表中的所有信息
-f o --force不管是否遇到错误,mysqlimport 将强制继续插入数据
-i o --ignoremysqlimport 跳过或忽略那些有相同唯一的              关键字所在的行,导入文件中的数据将被忽略。
-l o -lock-tablesBlocca la tabella prima di inserire i dati, prevenendo così                Quando aggiorni il database, le query e gli aggiornamenti degli utenti sono influenzati.
-r o -replaceQuesta opzione ha l'effetto opposto a quello dell'opzione -i; questa opzione sostituirà                           Ci sono record con la stessa chiave unica nella tabella.
--fields-enclosed-by= charSpecifica come racchiudere i record dei dati in un file di testo, molte volte                 I dati sono racchiusi in virgolette doppi. Per impostazione predefinita, i dati non sono racchiusi da nessun carattere.
--fields-terminated-by=charSpecifica il separatore tra i valori dei dati, nel file separato da punti,                 Il separatore è il punto. Puoi utilizzare questa opzione per specificare il separatore tra i dati.                 Il separatore predefinito è il tabulatore (Tab).
--lines-terminated-by=strQuesta opzione specifica la stringa di separazione tra i dati delle righe di un file di testo.                O carattere. Per impostazione predefinita, mysqlimport utilizza newline come separatore di riga.                Puoi scegliere di sostituire un singolo carattere con una stringa:                 Una nuova riga o un ritorno a capo.

Opzioni comuni del comando mysqlimport includono -v per visualizzare la versione (versione), -p per richiedere la password (password) e così via.