Heim >Datenbank >MySQL-Tutorial >Wie exportiere ich eine Tabelle in MySQL?
Exportmethode: Über die Anweisung „SELECTI...INTO OUTFILE“ verwenden Sie die Formatanweisung „SELECT Spaltenname FROM Tabelle [WHERE-Anweisung] INTO OUTFILE 'Zieldatei' [OPTIONS]“, um den Inhalt der Tabelle in eine zu exportieren Textdatei.
Durch den Import und Export von Datentabellen können Daten zwischen dem MySQL-Datenbankserver und anderen Datenbankservern verschoben werden. Unter Exportieren versteht man das Kopieren der Daten der MySQL-Datentabelle in eine Textdatei. Es gibt viele Möglichkeiten, Daten zu exportieren. In diesem Abschnitt wird hauptsächlich die Verwendung der SELECTI...INTO OUTFILE-Anweisung zum Exportieren von Daten vorgestellt.
In MySQL können Sie die SELECTI...INTO OUTFILE-Anweisung verwenden, um den Inhalt der Tabelle in eine Textdatei zu exportieren. Das Grundformat der SELECT...INTO OUTFILE-Anweisung ist wie folgt:
SELECT 列名 FROM table [WHERE 语句] INTO OUTFILE '目标文件'[OPTIONS]
Diese Anweisung verwendet SELECT, um die erforderlichen Daten abzufragen, und INTO OUTFILE, um die Daten zu exportieren. Unter anderem wird die Zieldatei verwendet, um die Datei anzugeben, in die die abgefragten Datensätze exportiert werden. Dabei ist zu beachten, dass es sich bei der Zieldatei nicht um eine bestehende Datei handeln darf.
[OPTIONS] ist eine optionale Parameteroption. Die Syntax des OPTIONS-Teils umfasst FIELDS- und LINES-Klauseln:
FIELDS TERMINATED BY 'String': Legen Sie die Zeichenfolge zwischen den Feldern fest Das Trennzeichen, das aus einem oder mehreren Zeichen bestehen kann, ist standardmäßig das Tabulatorzeichen „t“.
FIELDS [OPTIONAL] ENCLOSED BY 'Character': Legen Sie Zeichen fest, um Zeichenfelder wie CHAR, VARCHAR und TEXT einzuschließen. Wenn OPTIONALLY verwendet wird, kann es nur zum Einschließen von Zeichenfeldern wie CHAR und VARCHAR verwendet werden.
FIELDS ESCAPED BY 'Character': Legen Sie fest, wie Sonderzeichen geschrieben oder gelesen werden. Es kann nur ein einzelnes Zeichen sein, d. h. der Standardwert ist ''.
ZEILEN, DIE MIT „Zeichenfolge“ beginnen: Legen Sie das Zeichen am Anfang jeder Zeile fest. Dabei kann es sich um ein einzelnes oder mehrere Zeichen handeln. Standardmäßig werden keine Zeichen verwendet.
LINIEN, DIE MIT „String“ BEENDET WERDEN: Legen Sie das Zeichen am Ende jeder Zeile fest, das aus einem oder mehreren Zeichen bestehen kann. Der Standardwert ist „n“.
Hinweis: Sowohl die FIELDS- als auch die LINES-Klausel sind optional. Wenn jedoch beide angegeben werden, müssen FIELDS vor LINES platziert werden.
Beispiel 1
Im Folgenden wird die SELECT...INTO OUTFILE-Anweisung verwendet, um die Datensätze in der Personentabelle in der Testdatenbank zu exportieren. Die SQL-Anweisung und die Ausführungsergebnisse lauten wie folgt:
mysql> SELECT * FROM test.person INTO OUTFILE 'C://ProgramData/MySQL/MySQL Server 5.7/Uploads/person.txt'; Query OK, 5 rows affected (0.05 sec)
Suchen Sie dann die Datei person.txt entsprechend dem exportierten Pfad. Der Dateiinhalt lautet wie folgt:
1 Java 12 2 MySQL 13 3 C 15 4 C++ 22 5 Python 18
Die Personentabellendaten wurden erfolgreich exportiert.
Hinweis: Beim Exportieren kann der folgende Fehler auftreten:
The MySQL server is running with the --secure-file-priv option so it cannot execute this statement
Dies liegt daran, dass MySQL den Exportpfad von Daten begrenzt. MySQL-Import- und Exportdateien können nur in Dateien in dem durch die Variable secure-file-priv angegebenen Pfad importiert und exportiert werden.
Es gibt die folgenden 2 Lösungen:
1) Verwenden Sie zuerst die Show-Variablen wie „%secure%“, um die Konfiguration der Secure-File-Priv-Variablen anzuzeigen.
mysql> show variables like '%secure%' \G *************************** 1. row *************************** Variable_name: require_secure_transport Value: OFF *************************** 2. row *************************** Variable_name: secure_auth Value: ON *************************** 3. row *************************** Variable_name: secure_file_priv Value: C:\ProgramData\MySQL\MySQL Server 5.7\Uploads\ 3 rows in set, 1 warning (0.04 sec)
secure_file_priv Der Wert gibt den Pfad zur MySQL-Import- und Exportdatei an. Ändern Sie den Exportdateipfad in der SQL-Anweisung in den angegebenen Pfad der Variablen und führen Sie dann die Import- und Exportvorgänge aus. Sie können auch den Wert von secure-file-priv in der Konfigurationsdatei my.ini ändern und dann den Dienst neu starten.
2) Wenn der Wert „secure_file_priv“ NULL ist, ist der Export verboten. Sie können die Einstellungspfadanweisung „secure_file_priv=“ in der Datei „my.ini“ unter dem MySQL-Installationspfad hinzufügen und dann den Dienst neu starten.
Beispiel 2
Verwenden Sie die Anweisung SELECT...INTO OUTFILE, um die Datensätze in der Personentabelle in der Testdatenbank in eine Textdatei zu exportieren. Verwenden Sie die Option FIELDS und die Option LINES, wobei die Felder durch Folgendes getrennt werden müssen: und Zeichendaten in doppelte Anführungszeichen setzen. Jeder Datensatz beginnt mit -. Die SQL-Anweisung lautet wie folgt:
SELECT * FROM test.person INTO OUTFILE 'C:/person.txt' FIELDS TERMINATED BY '\、' OPTIONALLY ENCLOSED BY '\"' LINES STARTING BY '\-' TERMINATED BY '\r\n';
Darunter:
FIELDS TERMINATED BY ', ': bedeutet, dass die Felder durch getrennt sind;
ENCLOSED BY '"': bedeutet, dass jedes Feld eingeschlossen ist doppelte Anführungszeichen;
LINES STARTING BY '-': bedeutet, dass jede Zeile mit - beginnt;
TERMINATED BY 'rn' bedeutet, dass jede Zeile mit einem Wagenrücklauf und einem Zeilenvorschub endet, wodurch sichergestellt wird, dass jeder Datensatz eine Zeile einnimmt.
person.txt. Der Inhalt der Datei lautet wie folgt:
-1、"Java"、12 -2、"MySQL"、13 -3、"C"、15 -4、"C++"、22 -5、"Python"、18
Sie können sehen, dass jeder Datensatz mit - beginnt, alle Daten durch , getrennt sind und alle Feldwerte in doppelte Anführungszeichen gesetzt sind .
Empfohlenes Tutorial: MySQL-Video-Tutorial
Das obige ist der detaillierte Inhalt vonWie exportiere ich eine Tabelle in MySQL?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!