English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
In diesem Kapitel stellen wir Ihnen verschiedene einfache MySQL-Datenimport-Befehle vor.
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.
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
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);
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 oder --delete | 在新数据导入数据表之前删除数据表中的所有信息 |
-f oder --force | 不管是否遇到错误,mysqlimport将强制继续插入数据 |
-i oder --ignore | mysqlimport跳过或者忽略那些有相同唯一 关键字的行,导入文件中的数据将被忽略。 |
-l oder -lock-tables | Die 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 -replace | Diese 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= char | Geben 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=char | Geben 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=str | Diese 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.