Zum Inhalt springen

CSV in MariaDB umwandeln

Leg deine CSV-Datei ab und erhalte ein MariaDB-Skript mit CREATE TABLE- und INSERT-Anweisungen. Jede Spalte bekommt einen Typ, und jede Korrektur wird mit Zeile und Spalte aufgeführt.

Deine Datei
csvventas_2024.csvBeispieldatei, 357 B
Deine Datenbank

5 Zeilen konvertiert, 8 Korrekturen, keine abgelehnt

Anzeigen
Die ersten Zeilen von ventas_2024.csv, jede Korrektur markiert
Zeile
500412Peña MuñozMérida15/02/20241.234,50sí
600413José Ángel RuizLeón03/02/202499,90no
700414Zoë OrtízQuerétaro29/02/2024N/Así
800415Ñuño CastañedaOaxaca28/02/20247,25no
900416Iñaki OlaizolaMazatlán11/03/2024980,75sí
-- Written by IntoSQL for MariaDB.

SET NAMES utf8mb4;
SET SESSION sql_mode = REPLACE(@@sql_mode, 'NO_BACKSLASH_ESCAPES', '');
START TRANSACTION;

CREATE TABLE ventas_2024 (
    folio varchar(8) NOT NULL,
    cliente varchar(16) NOT NULL,
    ciudad varchar(16) NOT NULL,
    fecha date NOT NULL,
    importe decimal(6,2),
    pagado tinyint(1) NOT NULL
) DEFAULT CHARSET=utf8mb4;

INSERT INTO ventas_2024 (folio, cliente, ciudad, fecha, importe, pagado) VALUES
('00412', 'Peña Muñoz', 'Mérida', '2024-02-15', 1234.50, TRUE),
('00413', 'José Ángel Ruiz', 'León', '2024-02-03', 99.90, FALSE),
('00414', 'Zoë Ortíz', 'Querétaro', '2024-02-29', NULL, TRUE),
('00415', 'Ñuño Castañeda', 'Oaxaca', '2024-02-28', 7.25, FALSE),
('00416', 'Iñaki Olaizola', 'Mazatlán', '2024-03-11', 980.75, TRUE);

COMMIT;

Korrekturen

  1. Die Datei war in windows‑1252 kodiert; sie wurde in UTF-8 umgewandelt.
  2. Die Kopfzeile ist in Zeile 4; die Zeilen darüber wurden ausgelassen.
  3. Zeile 10 ("TOTAL") ist eine Summe und wurde deshalb ausgelassen.
  4. Führende Nullen in "Folio" behalten: 00412 bleibt 00412, gespeichert als Text.
  5. 15/02/2024 belegt, dass die Datumsangaben in "Fecha" mit dem Tag beginnen, also wird 03/02/2024 als 2024‑02‑03 gelesen.
  6. Zahlen in "Importe" nutzen ein Dezimalkomma: 1.234,50 wird als 1234.50 gelesen.
  7. N/A in "Importe" als leer gelesen (1 von 5 Werten).
  8. "Pagado" enthält Ja- und Nein-Wörter (sí, no), gespeichert als Boolean.

Deine Datei wird auf diesem Computer umgewandelt und nie hochgeladen.

Weitere Beispiele:

Von CSV zu MariaDB, Spalte für Spalte

Das Beispiel oben, ventas_2024.csv, so wie IntoSQL es für MariaDB schreibt: was jede Spalte in der Datei enthält, welchen Typ sie bekommt und wie ihr erster Wert im Skript landet.

In der DateiErster WertSpalteTyp in MariaDBIm Skript
Folio00412foliovarchar(8)'00412'
ClientePeña Muñozclientevarchar(16)'Peña Muñoz'
CiudadMéridaciudadvarchar(16)'Mérida'
Fecha15/02/2024fechadate'2024-02-15'
Importe1.234,50importedecimal(6,2)1234.50
Pagadosípagadotinyint(1)TRUE

Das Skript in MariaDB laden

Der Download ist eine einfache .sql-Datei. Führe sie mit den Werkzeugen von MariaDB aus.

Aus einem Terminal

mariadb --default-character-set=utf8mb4 mydb < ventas_2024.mariadb.sql

Das Skript setzt utf8mb4 selbst; das Flag sorgt dafür, dass der Client genauso sendet, damit Akzente unverändert ankommen.

Aus einem Datenbank-Tool

Öffne das Skript in HeidiSQL oder DBeaver und führe es aus.

Ohne SkriptPro

IntoSQL Pro lädt die Datei aus der Desktop-App oder der Kommandozeile direkt in MariaDB, ohne ein Skript zu schreiben.

intosql load ventas_2024.csv --into mariadb://user@localhost/mydb

Was du über CSV-Dateien und MariaDB wissen solltest

Was IntoSQL in CSV-Dateien liest

  • Die Kodierung wird erkannt, auch Windows-1252 und UTF-16, sodass Akzente und ñ unverändert ankommen.
  • Das Trennzeichen wird erkannt: Komma, Semikolon, Tabulator oder senkrechter Strich. Bei Semikolon werden Dezimalkommas wie 1.234,50 als Zahlen gelesen.
  • Werte in Anführungszeichen können Trennzeichen und Zeilenumbrüche enthalten.

Was du über MariaDB wissen solltest

  • Ja-und-nein-Werte werden zu tinyint(1). Text bis 255 Zeichen ist varchar; längerer Text ist je nach Größe text, mediumtext oder longtext.
  • Das Skript nutzt utf8mb4 und setzt den SQL-Modus, sodass Akzente, Emoji, Backslashes und Zeilenumbrüche so geladen werden, wie sie geschrieben sind.
  • Der datetime-Typ von MariaDB speichert keine Zeitzone.

Wie jede Art von Wert in MariaDB gespeichert wird

WertMariaDB
Ja und neintinyint(1)
Ganze Zahlenint
Große ganze Zahlenbigint
Dezimalzahlendecimal(p,s)double
Gleitkommazahlendouble
Datumswertedate
Uhrzeitentime(6)time
Datum mit Uhrzeitdatetime(6)datetime
Datum mit Uhrzeit und Zeitversatzdatetime(6)datetime
Textvarchar(n)textmediumtextlongtext

Fragen zu CSV zu MariaDB

Keine Antwort gefunden? Schreib uns über die Kontaktseite, und ein Mensch antwortet. Kontaktseite

Wie konvertiere ich CSV zu MariaDB?

Leg deine Datei auf den Konverter oben auf dieser Seite. Er findet die Kopfzeile, liest jeden Wert und schreibt das MariaDB-Skript, mit jeder Korrektur aufgelistet. Lade das Skript herunter und führe es mit the mariadb client aus.

Was, wenn meine CSV Semikolons oder Tabs verwendet?

Das Trennzeichen wird erkannt: Komma, Semikolon, Tab oder senkrechter Strich. Du kannst es auch unter Weitere Optionen festlegen. Mit Semikolon werden Dezimalkommas wie 1.234,50 als Zahlen gelesen.

Welche MariaDB-Typen werden verwendet?

Ja/Nein-Werte werden tinyint(1), ganze Zahlen int, Dezimalzahlen decimal(p,s), Datumsangaben date, Datumsangaben mit Uhrzeit datetime(6) und Text varchar(n). Die Größen richten sich nach dem längsten Wert jeder Spalte.

Bleiben führende Nullen in MariaDB erhalten?

Ja. Ein Code wie 00412 bleibt Text, also speichert MariaDB ihn als varchar(8), und das Skript schreibt ihn als '00412'.

Kann es die Daten ohne Skript in MariaDB laden?

Ja, mit IntoSQL Pro. Die Desktop-App und die Kommandozeile verbinden sich mit MariaDB und laden die Zeilen direkt, nachdem sie die Tabelle angelegt haben.

Wie groß darf die CSV-Datei sein?

Der Browser liest eine CSV beim Einströmen, daher funktionieren Dateien von mehreren Gigabyte. Auf einem Apple-M4-Laptop konvertiert die Kommandozeile eine 174-MB-CSV mit einer Million Zeilen in unter einer Sekunde.