Daten INFILE in MySQL laden

Preet Sanghavi 28 März 2022
Daten INFILE in MySQL laden

In diesem Tutorial möchten wir untersuchen, wie Daten aus CSV mithilfe von data INFILE in die MySQL-Datenbank importiert werden.

Um Daten aus einer Textdatei oder einer CSV-Datei mit sehr hoher Geschwindigkeit zu lesen, verwenden wir in MySQL die Anweisung LOAD DATA INFILE. Außerdem wird ein LOCAL-Wort eingeführt, wenn die Datei vom Host berücksichtigt werden muss.

Bevor wir Informationen aus einer Datei lesen, müssen wir sicherstellen, dass sich die CSV- oder Textdatei in der Datenbank befindet und über Leseberechtigungen verfügen sollte.

Die grundlegende Syntax der Anweisung LOAD DATA INFILE ist wie folgt.

LOAD DATA LOCAL INFILE "./csv_file.csv" INTO TABLE database_name.name_of_table; 

Wir lesen nun aus einer CSV-Datei namens fileCSV.csv in die Datenbank students ein. Wir nennen unsere Tabelle in der Datenbank students student_details.

Wir erstellen jedoch einen Dummy-Datensatz, an dem wir arbeiten können, bevor wir beginnen. Wir erstellen eine Tabelle, student_details, zusammen mit einigen Zeilen.

-- create the table student_details
CREATE TABLE student_details(
  stu_id int,
  stu_firstName varchar(255) DEFAULT NULL,
  stu_lastName varchar(255) DEFAULT NULL,
  primary key(stu_id)
);
-- insert rows to the table student_details
INSERT INTO student_details(stu_id,stu_firstName,stu_lastName) 
 VALUES(1,"Preet","Sanghavi"),
 (2,"Rich","John"),
 (3,"Veron","Brow"),
 (4,"Geo","Jos"),
 (5,"Hash","Shah"),
 (6,"Sachin","Parker"),
 (7,"David","Miller");

Daten in unserer CSV-Datei enthalten Informationen wie stu_id, stu_firstName und stu_lastName, aber mit unterschiedlicher stu_id. Ein Schnappschuss unserer CSV-Datei sieht wie folgt aus.

Daten laden infile mysql

Lassen Sie uns zunächst damit beginnen, eine Datenbank mit dem Namen Studenten zu erstellen. Wir können dies mit der folgenden Abfrage tun.

CREATE DATABASE students;

Wir können die folgende Abfrage schreiben, um unsere CSV-Datei in unsere students-Datenbank zu importieren.

LOAD DATA INFILE 'C:/ProgramData/MySQL/MySQL Server 8.0/Uploads/fileCSV.csv' into table student_details fields terminated by ',' ENCLOSED BY '"' IGNORE 1 ROWS;

Dies würde die folgende Ausgabe ergeben:

Query OK, 6 rows affected (0.01 sec)
Records: 6  Deleted: 0  Skipped: 0  Warnings: 0

Wenn wir die Tabelle student_details in der Datenbank students überprüfen, erhalten wir die folgende Ausgabe:

1	Preet	Sanghavi
2	Rich	John
3	Veron	Brow
4	Geo	Jos
5	Hash	Shah
6	Sachin	Parker
7	David	Miller
9	Rich	John
10	Veron	Brow
11	Geo	    Jos
12	Hash	Shah
13	Sachin	Parker
14	David	 Miller

Wir können aus dem obigen Codeblock schließen, dass wir unsere student_details-Tabelle aktualisiert haben. Wir haben jetzt die Daten in der CSV-Datei an unsere Tabelle angehängt.

Daher können wir mit Hilfe der Methode LOAD DATA INFILE effizient Daten aus einer externen CSV- oder Textdatei in eine Tabelle in MySQL schreiben.

Preet Sanghavi avatar Preet Sanghavi avatar

Preet writes his thoughts about programming in a simplified manner to help others learn better. With thorough research, his articles offer descriptive and easy to understand solutions.

LinkedIn GitHub