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

MySQL-Daten importieren

In diesem Kapitel stellen wir Ihnen verschiedene einfache MySQL-Datenimport-Befehle vor.

1Daten importieren mit dem mysql-Befehl

Der Import mit dem mysql-Befehl erfolgt in folgendem Format:

mysql -u Benutzername    -p Passwort <  Daten des zu importierenden Datenbankdatei(w3codebox.sql)

Beispiel:

# mysql -uroot -p123456 <3codebox.sql

Die folgenden Befehle werden den gesamten Datenbankbackup3codebox.sql importieren.

2Daten importieren mit dem source-Befehl

Der Befehl source zum Importieren der Datenbank erfordert zunächst den Login in den Datenbankterminal:

mysql> create database abc; # Datenbank erstellen
mysql> use abc; # Die bereits erstellte Datenbank verwenden 
mysql> set names utf8; # Zeichensatz festlegen
mysql> source /home/abc/abc.sql # Datenbankkopie importieren

3Daten importieren mit LOAD DATA

MySQL bietet den LOAD DATA INFILE-Befehl, um Daten einzufügen. Im folgenden Beispiel wird die Datei dump.txt aus dem aktuellen Verzeichnis gelesen und die Daten in die Tabelle mytbl der aktuellen Datenbank eingefügt.

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

 Wenn der Begriff LOCAL angegeben ist, bedeutet dies, dass die Datei gemäß dem Pfad vom Client-Rechner gelesen wird. Wenn nicht angegeben, wird die Datei gemäß dem Pfad auf dem Server gelesen.

Sie können den Trennzeichen und den Zeilenendezeichen im LOAD DATA-Anweisung explizit angeben, aber die Standardzeichen sind der Positionsbezeichner und der Zeilenumbruch.

Die Syntax der FIELDS- und LINES-Klauseln der beiden Anweisungen ist identisch. Beide Klauseln sind optional, aber wenn beide gleichzeitig angegeben werden, muss die FIELDS-Klausel vor der LINES-Klausel stehen.

如果用户指定一个FIELDS子句,它的子句(TERMINATED BY、[OPTIONALLY] ENCLOSED BY 和 ESCAPED BY)也是可选的,不过,用户必须至少指定它们中的一个。

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 oder --delete在新数据导入数据表之前删除数据表中的所有信息
-f oder --force不管是否遇到错误,mysqlimport将强制继续插入数据
-i oder --ignoremysqlimport跳过或者忽略那些有相同唯一              关键字的行,导入文件中的数据将被忽略。
-l oder -lock-tablesDie Tabelle wird vor dem Einfügen der Daten gesperrt, was verhindert, dass                Wenn Sie Datenbanken aktualisieren, werden die Abfragen und Aktualisierungen der Benutzer beeinflusst.
-r oder -replaceDiese Option hat die gleiche Wirkung wie die Option -i; Diese Option ersetzt                           Es gibt in der Tabelle Zeilen mit dem gleichen eindeutigen Schlüssel.
--fields-enclosed- by= charGeben Sie an, wie die Daten in einer Textdatei als Zeilen markiert werden, oft                 Daten werden in Anführungszeichen gesetzt. Standardmäßig sind die Daten nicht in Anführungszeichen gesetzt.
--fields-terminated- by=charGeben Sie den Trennzeichen zwischen den Werten der verschiedenen Daten an, in Dateien, die mit Punkten getrennt sind,                 Der Trennzeichen ist der Punkt. Sie können mit diesem Option das Trennzeichen zwischen den Daten angeben.                 Der Standard-Trennzeichen ist der Tabulator (Tab)
--lines-terminated- by=strDiese Option gibt an, welche Zeichenkette die Daten trennt, die in einer Textdatei aufeinander folgen                oder Zeichen. Standardmäßig verwendet mysqlimport newline als Zeilen-Trennzeichen.                Sie können einen String verwenden, um ein einzelnes Zeichen zu ersetzen:                 eine neue Zeile oder einen Zeilenumbruch.

mysqlimport häufig verwendete Optionen sind -v Anzeige der Version (version), -p Eingabe des Passworts (password) usw.