Heim >Datenbank >MySQL-Tutorial >So importieren Sie formatierte Daten in MySQL

So importieren Sie formatierte Daten in MySQL

青灯夜游
青灯夜游nach vorne
2019-03-28 11:49:482372Durchsuche

Wie importiere ich formatierte Daten in MySQL? Dieser Artikel stellt Ihnen die Methode zum Importieren formatierter Daten in MySQL vor. Ich hoffe, dass er für Freunde hilfreich ist.

In einigen Szenarien müssen wir einen Datenstapel in einem bestimmten Format in die MySQL-Datenbank importieren. Dazu können Sie Shell-Skripte oder Python verwenden Befehle, mysqlimport und load data

mysqlimport

Verwendung

mysqlimport [options] db_name textfile1 [textfile2 ...]
# db_name 对应数据库名称
# textfile 文件名,对应要插入的数据库表名
# 比如:mysqlimport a8 campaign.txt 会把campaign.txt中的数据插入到a8数据库中的campaign表

Hinweis: Die Datei Campaign.txt muss vorhanden sein im Verzeichnis /usr/local/mysql/var/a8/, also dem Verzeichnis, in dem sich die Datenbank befindet

Wenn sie sich nicht im entsprechenden Verzeichnis befindet, wird der folgende Fehler zurückgegeben:

mysqlimport -uroot -p123456 -hlocalhost -P3306 a8 campaign.txt 
/usr/local/mysql/bin/mysqlimport: Error: File '/usr/local/mysql/var/a8/campaign.txt' not found (Errcode: 2), when using table: campaign

Allgemeine Optionen

--columns=id,name,creator...
# 对应的数据表列名,定义被导入文件中的每一列对应的数据库表列名

--fields-terminated-by=
# 文件字段以什么分隔,参数为字符串,默认为\t

--fields-enclosed-by=
# 数据域用什么符号扩起来,默认为空,一般可以是双引号、括号等

--fields-optionally-enclosed-by=
# 数据域可以用什么符号括起来,因为为只有部分数据用这些符号括起来

--fields-escaped-by=
# 转义字符,参数为字符,默认为\

--lines-terminated-by=
# 数据行以什么结束,参数为字符串,windows默认为\r\n

--user=user_name 或 -u user_name
--password=[password] 或 -p[password]
--host=host_name 或 -h hostname
--port=port_num,或 -P port_num
# 定义用户名、密码、mysql服务器地址和用于连接的TCP/IP端口号,默认为mysql默认端口3306

--ignore-lines=n
# 忽视数据文件的前n行,因为很多数据文件前面有表头

--delete -D
# 在把文件中的数据插入前删除表中原先的数据

--local -L
# 指定从客户端电脑读入数据文件,否则从服务器电脑读取

--lock-tables -l
# 处理文本文件前锁定所有表以便写入,确保所有表在服务器上保持同步

--protocol={TCP | SOCKET | PIPE | MEMORY}
使用的连接协议

--force -f
#忽视错误。例如,如果某个文本文件的表不存在,继续处理其它文件,不使用--force,如果表不存在则mysqlimport退出

--compress -C
# 压缩在客户端和服务器之间发送的所有信息(如果二者均支持压缩)

--silent,-s
# 沉默模式,只有出现错误时才输出

--socket=path,-S path
# 当连接localhost时使用的套接字文件(为默认主机)

--verbose,-v
# 冗长模式。打印出程序操作的详细信息。

--version,-V
# 显示版本信息并退出。

Daten laden

Verwendung

mysql> load data [low_priority] [local] infile 'file_name txt' [replace | ignore]
into table tbl_name
[fields]
[terminated by '\t']
[OPTIONALLY] enclosed by '']
[escaped by '\' ]]
[lines terminated by 'n']
[ignore number lines]
[(id,name,creator)]

Anweisungen: Die Anweisung

load data infile dient zum Importieren von Textdaten in die Datentabelle ein. Bevor Sie diesen Befehl verwenden, muss der mysqld-Prozess (Dienst) ausgeführt werden. Bitte stellen Sie vor der Verwendung sicher, dass Sie Leseberechtigung für die Datei haben

1. Wenn Sie das Schlüsselwort low_priority angeben, wartet MySQL, bis niemand anderes die Tabelle liest, bevor es Daten einfügt. Sie können den folgenden Befehl verwenden:

mysql> load data low_priority infile "/home/root/data.sql" into table campaign;

2. Wenn Sie das Schlüsselwort local angeben, bedeutet dies, dass die Datei vom Client-Host gelesen wird. Wenn „local“ nicht angegeben ist, muss sich die Datei auf dem Server befinden.

3. Die Schlüsselwörter „Ersetzen“ und „Ignorieren“ steuern die Duplizierungsverarbeitung vorhandener eindeutiger Schlüsseldatensätze. Wenn Sie „replace“ angeben, ersetzt die neue Zeile die vorhandene Zeile mit demselben eindeutigen Schlüsselwert. Wenn Sie „Ignorieren“ angeben, wird die Eingabe doppelter Zeilen für vorhandene Zeilen mit eindeutigen Schlüsseln übersprungen. Wenn Sie keine der beiden Optionen angeben, tritt ein Fehler auf, wenn ein doppelter Schlüssel gefunden wird, und der Rest der Textdatei wird ignoriert. Beispiel:

mysql> load data low_priority infile "/home/root/data.sql" replace into table campaign;

4. Trennzeichen

1) Das Schlüsselwort „fields“ gibt das Aufteilungsformat von Dateifeldern an. Wenn dieses Schlüsselwort verwendet wird, hofft der MySQL-Profiler, mindestens eines der folgenden Elemente zu sehen Optionen:

terminated by:分隔符,字段是以什么字符作为分隔符
enclosed by:字段括起字符,例:` "周丽","10","学习很好" ` 这样的一行,就需要这么写 ` ENCLOSED BY '"' `
escaped by:转义字符
lines terminated by:描述字段的分隔符,默认情况下是tab字符(\t) 
ignore number lines:用来忽略导入文件的开始的行。例如:number=1,则忽略导入文件的第一行数据。

Zum Beispiel:

mysql> load data infile "/home/root/data.sql" replace into table campaign fields terminated by',' enclosed by '"';

2) Das Schlüsselwort „lines“ gibt das Trennzeichen jedes Datensatzes an. Der Standardwert ist „n“, das ist das Zeilenumbruchzeichen.
Wenn beide Felder vorhanden sind angegeben Die Felder müssen vor den Zeilen stehen. Wenn Sie das Schlüsselwort „fields“ nicht angeben, ist der Standardwert derselbe wie dieser: fields terminated by't' enclosed by ’ '' ‘ escaped by'\'
Wenn Sie keine Zeilenklausel angeben, ist der Standardwert derselbe wie dieser: lines terminated by'n'
Zum Beispiel :

mysql> load data infile "/root/load.txt" replace into table test fields terminated by ',' lines terminated by '/n';

5. Daten in die Datei laden kann Dateien entsprechend den angegebenen Spalten in die Datenbank importieren. Wenn wir einen Teil der Daten importieren möchten, müssen wir einige Spalten (Spalten/Felder/Felder) zur MySQL-Datenbank hinzufügen, um einige zusätzliche Anforderungen zu erfüllen. Wenn wir beispielsweise von einer Access-Datenbank auf eine MySQL-Datenbank aktualisieren möchten
Das folgende Beispiel zeigt, wie Daten in eine bestimmte Spalte (ein bestimmtes Feld) importiert werden:

mysql> load data infile "/home/root/campaign.txt" into table campaign(id, name, creator);

6. Bei der Suche nach Dateien auf der Server-Host verwendet der Server die folgenden Regeln:

●Wenn ein absoluter Pfadname angegeben wird, verwendet der Server diesen Pfadnamen.

● Wenn ein relativer Pfadname mit einer oder mehreren vorangehenden Komponenten angegeben wird, sucht der Server nach der Datei relativ zum Datenverzeichnis des Servers.

● Wird ein Dateiname ohne Präfix angegeben, sucht der Server nach der Datei im Datenbankverzeichnis der aktuellen Datenbank.

Zum Beispiel: /campaign.txt wird aus dem Datenverzeichnis des Servers gelesen, während Campaign.txt aus dem Datenbankverzeichnis der aktuellen Datenbank gelesen wird.

Empfohlene verwandte Video-Tutorials: „MySQL-Tutorial

Das Obige ist der gesamte Inhalt dieses Artikels, ich hoffe, dass er für das Lernen aller hilfreich sein wird. Weitere spannende Inhalte finden Sie in den entsprechenden Tutorial-Kolumnen auf der chinesischen PHP-Website! ! !

Das obige ist der detaillierte Inhalt vonSo importieren Sie formatierte Daten in MySQL. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:segmentfault.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen