Excel in MySQL umwandeln
Leg deine Excel-Datei ab und erhalte ein MySQL-Skript mit CREATE TABLE- und INSERT-Anweisungen. Jede Spalte bekommt einen Typ, und jede Korrektur wird mit Zeile und Spalte aufgeführt.
4 Zeilen konvertiert, 10 Korrekturen, keine abgelehnt
| Zeile | ||||||
|---|---|---|---|---|---|---|
| 5 | 00127 | Peña Muñoz | 01234 | 03/02/2024 | sí | 1.234,50 |
| 6 | 00128 | José Ángel | 09870 | 15/02/2024 | no | N/A |
| 7 | 00129 | Zoë Ortíz | 44100 | 29/02/2024 | sí | -12,00 |
| 8 | 00130 | Ñuño Castañeda | 06700 | 11/03/2024 | no | 980,75 |
-- Written by IntoSQL for MySQL.
SET NAMES utf8mb4;
SET SESSION sql_mode = REPLACE(@@sql_mode, 'NO_BACKSLASH_ESCAPES', '');
START TRANSACTION;
CREATE TABLE clientes_2024 (
no_cliente varchar(8) NOT NULL COMMENT 'Nº Cliente',
nombre varchar(16) NOT NULL,
c_p varchar(8) NOT NULL COMMENT 'C.P.',
alta date NOT NULL,
activo tinyint(1) NOT NULL,
saldo decimal(6,2)
) DEFAULT CHARSET=utf8mb4;
INSERT INTO clientes_2024 (no_cliente, nombre, c_p, alta, activo, saldo) VALUES
('00127', 'Peña Muñoz', '01234', '2024-02-03', TRUE, 1234.50),
('00128', 'José Ángel', '09870', '2024-02-15', FALSE, NULL),
('00129', 'Zoë Ortíz', '44100', '2024-02-29', TRUE, -12.00),
('00130', 'Ñuño Castañeda', '06700', '2024-03-11', FALSE, 980.75);
COMMIT;
Korrekturen
- Die Kopfzeile ist in Zeile 4; die Zeilen darüber wurden ausgelassen.
- Zeile 9 ("TOTAL") ist eine Summe und wurde deshalb ausgelassen.
- Spalte "Nº Cliente" heißt jetzt no_cliente, damit MySQL sie ohne Anführungszeichen liest.
- Spalte "C.P." heißt jetzt c_p, damit MySQL sie ohne Anführungszeichen liest.
- Führende Nullen in "Nº Cliente" behalten: 00127 bleibt 00127, gespeichert als Text.
- Führende Nullen in "C.P." behalten: 01234 bleibt 01234, gespeichert als Text.
- 15/02/2024 belegt, dass die Datumsangaben in "Alta" mit dem Tag beginnen, also wird 03/02/2024 als 2024‑02‑03 gelesen.
- "Activo" enthält Ja- und Nein-Wörter (sí, no), gespeichert als Boolean.
- Zahlen in "Saldo" nutzen ein Dezimalkomma: 1.234,50 wird als 1234.50 gelesen.
- N/A in "Saldo" als leer gelesen (1 von 4 Werten).
Deine Datei wird auf diesem Computer umgewandelt und nie hochgeladen.
Weitere Beispiele:
Von Excel zu MySQL, Spalte für Spalte
Das Beispiel oben, clientes_2024.xlsx, so wie IntoSQL es für MySQL schreibt: was jede Spalte in der Datei enthält, welchen Typ sie bekommt und wie ihr erster Wert im Skript landet.
| In der Datei | Erster Wert | Spalte | Typ in MySQL | Im Skript |
|---|---|---|---|---|
| Nº Cliente | 00127 | no_cliente | varchar(8) | '00127' |
| Nombre | Peña Muñoz | nombre | varchar(16) | 'Peña Muñoz' |
| C.P. | 01234 | c_p | varchar(8) | '01234' |
| Alta | 03/02/2024 | alta | date | '2024-02-03' |
| Activo | sí | activo | tinyint(1) | TRUE |
| Saldo | 1.234,50 | saldo | decimal(6,2) | 1234.50 |
Das Skript in MySQL laden
Der Download ist eine einfache .sql-Datei. Führe sie mit den Werkzeugen von MySQL aus.
Aus einem Terminal
mysql --default-character-set=utf8mb4 mydb < clientes_2024.mysql.sqlDas Skript setzt utf8mb4 selbst; das Flag sorgt dafür, dass der Client genauso sendet, damit Akzente unverändert ankommen.
Aus einem Datenbank-Tool
Wähle in MySQL Workbench File, Run SQL Script und dann die Datei.
Ohne SkriptPro
IntoSQL Pro lädt die Datei aus der Desktop-App oder der Kommandozeile direkt in MySQL, ohne ein Skript zu schreiben.
intosql load clientes_2024.xlsx --into mysql://user@localhost/mydbWas du über Excel-Dateien und MySQL wissen solltest
Was IntoSQL in Excel-Dateien liest
- Die Kopfzeile wird auch gefunden, wenn Titel oder Notizen darüber stehen, und eine Summenzeile am Ende wird weggelassen.
- Als Excel-Seriennummern gespeicherte Datumswerte werden zu echten Datumswerten, im 1900- wie im 1904-Datumssystem.
- Codes mit führenden Nullen wie 00127 bleiben Text. Hat eine Arbeitsmappe mehrere Blätter, wählst du das Blatt aus.
Was du über MySQL 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 MySQL speichert keine Zeitzone.
Wie jede Art von Wert in MySQL gespeichert wird
| Wert | MySQL |
|---|---|
| Ja und nein | tinyint(1) |
| Ganze Zahlen | int |
| Große ganze Zahlen | bigint |
| Dezimalzahlen | decimal(p,s)double |
| Gleitkommazahlen | double |
| Datumswerte | date |
| Uhrzeiten | time(6)time |
| Datum mit Uhrzeit | datetime(6)datetime |
| Datum mit Uhrzeit und Zeitversatz | datetime(6)datetime |
| Text | varchar(n)textmediumtextlongtext |
Fragen zu Excel zu MySQL
Keine Antwort gefunden? Schreib uns über die Kontaktseite, und ein Mensch antwortet. Kontaktseite
Wie konvertiere ich Excel zu MySQL?
Leg deine Datei auf den Konverter oben auf dieser Seite. Er findet die Kopfzeile, liest jeden Wert und schreibt das MySQL-Skript, mit jeder Korrektur aufgelistet. Lade das Skript herunter und führe es mit the mysql client aus.
Welches Blatt der Arbeitsmappe wird konvertiert?
Das erste sichtbare Blatt. Hat eine Arbeitsmappe mehrere, erscheint die Option Blatt, mit der du ein anderes wählen kannst.
Welche MySQL-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 MySQL erhalten?
Ja. Ein Code wie 00127 bleibt Text, also speichert MySQL ihn als varchar(8), und das Skript schreibt ihn als '00127'.
Kann es die Daten ohne Skript in MySQL laden?
Ja, mit IntoSQL Pro. Die Desktop-App und die Kommandozeile verbinden sich mit MySQL und laden die Zeilen direkt, nachdem sie die Tabelle angelegt haben.
Wie groß darf die Excel-Datei sein?
Im Browser wird eine Arbeitsmappe vollständig gelesen, die Grenze ist also der Speicher, den der Browser dieser Seite gibt. Die Desktop-App und die Kommandozeile nehmen Arbeitsmappen jeder Größe; auf einem Apple-M4-Laptop konvertiert die Kommandozeile eine 117-MB-Arbeitsmappe mit einer Million Zeilen in etwa einer Sekunde.