English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
In questa sezione, vi presentiamo alcune istruzioni di importazione dati semplici di 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.
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
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);
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 *****
选项 | 功能 |
---|---|
-d o --delete | 在新数据导入数据表之前删除数据表中的所有信息 |
-f o --force | 不管是否遇到错误,mysqlimport 将强制继续插入数据 |
-i o --ignore | mysqlimport 跳过或忽略那些有相同唯一的 关键字所在的行,导入文件中的数据将被忽略。 |
-l o -lock-tables | Blocca la tabella prima di inserire i dati, prevenendo così Quando aggiorni il database, le query e gli aggiornamenti degli utenti sono influenzati. |
-r o -replace | Questa 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= char | Specifica 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=char | Specifica 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=str | Questa 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.