Vielfältige Einsatzmöglichkeiten von MySQL Load Data1. LOAD Grundlegender Hintergrund
2. Grundparameter laden
-- Exportieren Sie die Basisparameter „select *“ in die Ausgabedatei „/data/mysql/3306/tmp/employees.txt“. Zeichensatz utf8mb4 Felder, die mit ',' abgeschlossen sind umschlossen von '"' Zeilen, die mit '\n' beendet sind von Mitarbeitern.Mitarbeitergrenze 10; -- Grundlegende Parameter importieren, Daten in Datei „/data/mysql/3306/tmp/employees.txt“ laden Ersetzen in Tabelle demo.emp Zeichensatz utf8mb4 Felder, die mit ',' abgeschlossen sind umschlossen von '"' Zeilen, die mit '\n' beendet sind ... 3. Beispieldaten und Beispieltabellenstruktur laden
--Dateninhalt der exportierten Datei [root@10-186-61-162 tmp]# cat employees.txt "10001","1953-09-02","Georgi","Facello","M","1986-06-26" "10002","1964-06-02","Bezalel","Simmel","F","1985-11-21" "10003","1959-12-03","Parto","Bamford","M","1986-08-28" "10004","1954-05-01","Christian","Koblick","M","1986-12-01" "10005","1955-01-21","Kyoichi","Maliniak","M","1989-09-12" "10006","1953-04-20","Anneke","Preusig","F","1989-06-02" "10007","1957-05-23","Tzvetan","Zielinski","F","1989-02-10" "10008","19.02.1958","Saniya","Kalloufi","M","15.09.1994" "10009","1952-04-19","Sumant","Peac","F","1985-02-18" "10010","1963-06-01","Duangkaew","Piveteau","F","1989-08-24" -- Beispiel einer Tabellenstruktur SQL > desc demo.emp; +-------------+------------------+------+-----+---------+---------+-------+ | Feld | Typ | Null | Schlüssel | Standard | Extra | +-------------+------------------+------+-----+---------+---------+-------+ | emp_no | int | NEIN | PRI | NULL | | | Geburtsdatum | Datum | NEIN | | NULL | | | Vorname | varchar(16) | NEIN | | NULL | | | Nachname | varchar(16) | NEIN | | NULL | | | fullname | varchar(32) | JA | | NULL | | -- Ein neues Feld in der Tabelle, das in der exportierten Datendatei nicht vorhanden ist | gender | enum('M','F') | NEIN | | NULL | | | Einstellungsdatum | Datum | NEIN | | NULL | | | modify_date | datetime | JA | | NULL | | -- Der Tabelle wird ein neues Feld hinzugefügt, das in der exportierten Datendatei nicht vorhanden ist.| delete_flag | char(1) | JA | | NULL | | -- Der Tabelle wird ein neues Feld hinzugefügt, das in der exportierten Datendatei nicht vorhanden ist.+-------------+---------------+------+-----+---------+---------+ -- Die entsprechende Beziehung zwischen den exportierten Daten und den Feldern emp_no birth_date first_name last_name gender hire_date "10001" "1953-09-02" "Georgi" "Facello" "M" "1986-06-26" "10002" "1964-06-02" "Bezalel" "Simmel" "F" "1985-11-21" "10003" "1959-12-03" "Parto" "Bamford" "M" "1986-08-28" "10004" "1954-05-01" "Christian" "Koblick" "M" "1986-12-01" "10005" "1955-01-21" "Kyoichi" "Maliniak" "M" "1989-09-12" "10006" "1953-04-20" "Anneke" "Preusig" "F" "1989-06-02" "10007" "1957-05-23" "Tzvetan" "Zielinski" "F" "1989-02-10" "10008" "19.02.1958" "Saniya" "Kalloufi" "M" "15.09.1994" "10009" "19.04.1952" "Sumant" "Frieden" "F" "18.02.1985" "10010" "1963-06-01" "Duangkaew" "Piveteau" "F" "1989-08-24" 4. Beispiel eines LOAD-SzenariosSzenario 1. Die LOAD-Datei enthält mehr Felder als die Datentabelle
- Erstellen Sie vorübergehend eine Tabellenstruktur mit zwei Feldern SQL > create table emp_tmp select emp_no,hire_date from emp; SQL > Beschreibung emp_tmp; +-----------+------+------+-----+---------+---------+----------+ | Feld | Typ | Null | Schlüssel | Standard | Extra | +-----------+------+------+-----+---------+---------+----------+ | emp_no | int | NEIN | | NULL | | | Einstellungsdatum | Datum | NEIN | | NULL | | +-----------+------+------+-----+---------+---------+----------+ -- Datenanweisung importieren, Daten in Datei „/data/mysql/3306/tmp/employees.txt“ laden Ersetzen in Tabelle demo.emp_tmp Zeichensatz utf8mb4 Felder, die mit ',' abgeschlossen sind umschlossen von '"' Zeilen, die mit '\n' beendet sind (@C1,@C2,@C3,@C4,@C5,@C6) -- Dieser Teil entspricht den 6 Datenspalten in der Datei „employees.txt“ -- Nur die 2 in den exportierten Daten angegebenen Spalten werden mit den Feldern in der Tabelle abgeglichen. Die durch die Zuordnungsbeziehung angegebene Reihenfolge hat keinen Einfluss auf das Importergebnis. setze hire_date=@C6, emp_nr=@C1; -- Beispiel für Datenimportergebnis SQL > select * from emp_tmp; +--------+------------+ |Mitarbeiternummer |Einstellungsdatum | +--------+------------+ | 10001 | 26.06.1986 | | 10002 | 21.11.1985 | | 10003 | 28.08.1986 | | 10004 | 01.12.1986 | | 10005 | 12.09.1989 | | 10006 | 02.06.1989 | | 10007 | 10.02.1989 | | 10008 | 15.09.1994 | | 10009 | 18.02.1985 | | 10010 | 24.08.1989 | +--------+------------+ 10 Zeilen im Satz (0,0016 Sek.) Szenario 2. Die LOAD-Datei enthält weniger Felder als die Datentabelle
-- Datenanweisung importieren, Daten in Datei laden '/data/mysql/3306/tmp/employees.txt' Ersetzen in Tabelle demo.emp Zeichensatz utf8mb4 Felder, die mit ',' abgeschlossen sind umschlossen von '"' Zeilen, die mit '\n' beendet sind (@C1,@C2,@C3,@C4,@C5,@C6) -- Dieser Teil entspricht den 6 Datenspalten in der Datei „employees.txt“ -- Ordnen Sie die Felder in der Datei den Feldern in der Tabelle zu und verarbeiten Sie die zusätzlichen Felder in der Tabelle nicht. setze emp_no=@C1, Geburtsdatum=@C2, Vorname=@C3, Nachname=@C4, Geschlecht=@C5, Einstellungsdatum=@C6; Szenario 3. LOAD generiert benutzerdefinierte Felddaten
-- Datenanweisung importieren, Daten in Datei „/data/mysql/3306/tmp/employees.txt“ laden Ersetzen in Tabelle demo.emp Zeichensatz utf8mb4 Felder, die mit ',' abgeschlossen sind umschlossen von '"' Zeilen, die mit '\n' beendet sind (@C1, @C2, @C3, @C4, @C5, @C6) -- Dieser Teil entspricht den 6 Datenspalten in der Datei employees.txt -- Der folgende Teil ordnet die Felder in der Tabelle eindeutig den Feldern in der Datendatei zu. Nicht vorhandene Daten werden durch Funktionsverarbeitung generiert (sie können auch auf einen festen Wert gesetzt werden) setze emp_no=@C1, Geburtsdatum=@C2, first_name=upper(@C3), -- Konvertieren Sie die importierten Daten in Großbuchstaben last_name=lower(@C4), -- Konvertieren Sie die importierten Daten in Kleinbuchstaben fullname=concat(first_name,' ',last_name), -- Verketten Sie first_name und last_name gender=@C5, Einstellungsdatum=@C6 , modify_date=now(), -- Aktuelle Zeitdaten generieren delete_flag=if(hire_date<'1988-01-01','Y','N'); -- Bedingte Operationen an den Werten durchführen, die basierend auf einer bestimmten Spalte generiert werden sollen Szenario 4. Daten mit fester Länge laden
SQL > auswählen c1 als Beispieldaten, substr(c1,1,3) als c1, substr(c1,4,3) als c2, substr(c1,7,2) als c3, substr(c1,9,5) als c4, substr(c1,14,3) als c5, substr(c1,17,3) als c6 von t1 *************************** 1. Reihe *************************** Beispieldaten: ABC Yu Zhenxing CD MySQL EF G-Datenbank c1: ABC c2: Yu Zhenxing c3: CD c4: MySQL c5: EFG c6: Datenbank
-- SQL für Daten mit fester Länge generieren > auswählen concat(rpad(emp_nr,10,' '), rpad(Geburtsdatum,19,' '), rpad(Vorname,14,' '), rpad(Nachname,16,' '), rpad(Geschlecht,2,' '), rpad(Einstellungsdatum,19,' ')) als Daten mit fester Länge von Mitarbeitern.Mitarbeitergrenze 10; +--------------------------------------------------------------------------------------------------+ | Daten mit fester Länge | +--------------------------------------------------------------------------------------------------+ | 10001 02.09.1953 Georgi Facello M 26.06.1986 | | 10002 02.06.1964 Bezalel Simmel F 21.11.1985 | | 10003 03.12.1959 Parto Bamford M 28.08.1986 | | 10004 01.05.1954 Christian Koblick M 01.12.1986 | | 10005 21.01.1955 Kyoichi Maliniak M 12.09.1989 | | 10006 20.04.1953 Anneke Preusig F 02.06.1989 | | 10007 23.05.1957 Tzvetan Zielinski F 10.02.1989 | | 10008 19.02.1958 Saniya Kalloufi M 15.09.1994 | | 10009 19.04.1952 Sumant Peac F 18.02.1985 | | 10010 01.06.1963 Duangkaew Piveteau F 24.08.1989 | +--------------------------------------------------------------------------------------------------+ -- Daten mit fester Länge exportieren concat(rpad(emp_nr,10,' '), rpad(Geburtsdatum,19,' '), rpad(Vorname,14,' '), rpad(Nachname,16,' '), rpad(Geschlecht,2,' '), rpad(Einstellungsdatum,19,' ')) als Daten mit fester Länge in Ausgabedatei '/data/mysql/3306/tmp/employees_fixed.txt' Zeichensatz utf8mb4 Zeilen, die mit '\n' beendet sind von Mitarbeitern.Mitarbeitergrenze 10; --Datenexportbeispiel [root@10-186-61-162 tmp]# cat employees_fixed.txt 10001 02.09.1953 Georgi Facello M 26.06.1986 10002 02.06.1964 Bezalel Simmel F 21.11.1985 10003 03.12.1959 Parto Bamford M 28.08.1986 10004 1954-05-01 Christian Koblick M 1986-12-01 10005 21.01.1955 Kyoichi Maliniak M 12.09.1989 10006 1953-04-20 Anneke Preusig F 1989-06-02 10007 1957-05-23 Tzvetan Zielinski F 1989-02-10 10008 19.02.1958 Saniya Kalloufi M 15.09.1994 10009 1952-04-19 Sumant Peac F 1985-02-18 10010 1963-06-01 Duangkaew Piveteau F 1989-08-24 -- Daten mit fester Länge importieren, Daten in Datei '/data/mysql/3306/tmp/employees_fixed.txt' laden Ersetzen in Tabelle demo.emp Zeichensatz utf8mb4 Felder, die mit ',' abgeschlossen sind umschlossen von '"' Zeilen, die mit '\n' beendet sind (@row) – Definieren Sie eine Datenzeile als gesamten Satz emp_no = trim(substr(@row,1,10)), – Verwenden Sie substr, um die ersten 10 Zeichen abzurufen und die führenden und nachfolgenden Leerzeichen zu entfernen birth_date = trim(substr(@row,11,19)), – Die nachfolgenden Felder sind ähnlich first_name = trim(substr(@row,30,14)), Nachname = trim(substr(@row,44,16)), fullname = concat(Vorname,' ',Nachname), -- Vorname und Nachname verketten gender = trim(substr(@row,60,2)), Einstellungsdatum = trim(substr(@row,62,19)), change_date = jetzt(), delete_flag = if(hire_date<'1988-01-01','Y','N'); -- Führen Sie bedingte Operationen an den Werten aus, die basierend auf einer bestimmten Spalte generiert werden sollen 5. LOAD-Zusammenfassung 1. Standardmäßig ist die Importreihenfolge in der Textdatei 2. Wenn die Tabellenstruktur und die Textdaten inkonsistent sind, wird empfohlen, die Spalten in der Textdatei der Reihe nach zu nummerieren und eine Zuordnungsbeziehung zu den Feldern in der Tabelle herzustellen, um zu verhindern, dass Daten in das falsche Feld importiert werden. 3. Für Szenarien, in denen die zu importierende Textdatei groß ist, wird empfohlen, 4. Nach dem Importieren der Datei wird empfohlen, die folgende Anweisung auszuführen, um zu überprüfen, ob die importierten Daten
5. Wenn zwischen den Daten der Textdatei und der Tabellenstruktur große Unterschiede bestehen oder die Daten bereinigt und konvertiert werden müssen, empfiehlt es sich, vor der Verarbeitung und Konvertierung ein professionelles ETL-Tool zu verwenden oder die Daten grob in MySQL zu importieren. Oben finden Sie detaillierte Informationen zu den verschiedenen Verwendungsmöglichkeiten von MySQL Load Data. Weitere Informationen zur Verwendung von MySQL Load Data finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM! , ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird! Das könnte Sie auch interessieren:
|
<<: Detaillierte Erklärung des Docker Compose-Orchestrierungstools
>>: Dieser Artikel zeigt Ihnen, was Vite mit der Anfrage des Browsers macht
1. Importieren Sie das Modul und definieren Sie e...
Schauen Sie sich den Code an: Code kopieren Der Co...
Offizielle Dokumentation: JSON-Funktionen Name Be...
<br />Wir deklarieren DOCTYPE in HTML normal...
Derzeit habe ich ein Projekt erstellt, die Schnitt...
1. Öffnen Sie Port 2375 Bearbeiten Sie docker.ser...
Installation, Konfiguration, Start, Anmeldung und...
1. Einleitung Im Projekt wird MySQL verwendet. Ic...
Ich habe vor Kurzem in einer virtuellen VMware-Ma...
Inhaltsverzeichnis Vorwort Entdecken Sie die Ursa...
1. Code der Multiheader-Tabelle Code kopieren Der ...
Der spezifische Code lautet wie folgt: <!DOCTY...
Inhaltsverzeichnis Einführung Installieren 1. Ers...
Zuerst ist die Idee Um diesen Effekt zu erzielen,...
Standardmäßig unterstützt Nginx nur ein SSL-Zerti...