Code & Queries

Code & Queries: Your Source for SQL, Python, and AI Insights

Learn SQL: Insert multiple rows commands

SQL (Structured Query Language) ist eine der wichtigsten Sprachen für die Arbeit mit Datenbanken. Einer der grundlegendsten Befehle in SQL ist der INSERT-Befehl, mit dem du Daten in eine Tabelle einfügen kannst. Was aber, wenn du mehrere Zeilen auf einmal einfügen möchtest? In diesem Artikel zeige ich dir, wie du mit SQL mehrere Zeilen gleichzeitig einfügen kannst – inklusive praktischer Beispiele.


Warum mehrere Zeilen auf einmal einfügen?

Das Einfügen mehrerer Zeilen in einem einzigen Befehl hat mehrere Vorteile:
1. Effizienz: Du sparst Zeit und Ressourcen, da du nicht für jede Zeile einen separaten INSERT-Befehl ausführen musst.
2. Lesbarkeit: Dein Code wird übersichtlicher und einfacher zu warten.
3. Performance: Datenbanken können mehrere Zeilen in einem Durchlauf oft schneller verarbeiten als einzelne Einfügeoperationen.


Syntax für das Einfügen mehrerer Zeilen

Die grundlegende Syntax für das Einfügen mehrerer Zeilen in SQL sieht so aus:

INSERT INTO tabellenname (spalte1, spalte2, spalte3, ...)
VALUES 
    (wert1_1, wert1_2, wert1_3, ...),
    (wert2_1, wert2_2, wert2_3, ...),
    (wert3_1, wert3_2, wert3_3, ...);
  • tabellenname: Der Name der Tabelle, in die du Daten einfügen möchtest.
  • spalte1, spalte2, ...: Die Spalten, in die die Daten eingefügt werden sollen.
  • wertX_Y: Die Werte, die du einfügen möchtest. Jede Zeile in der VALUES-Klausel entspricht einer neuen Zeile in der Tabelle.

Beispiel 1: Einfaches Einfügen mehrerer Zeilen

Angenommen, wir haben eine Tabelle namens Kunden mit den Spalten ID, Name und Stadt. Wir möchten drei neue Kunden auf einmal einfügen:

INSERT INTO Kunden (ID, Name, Stadt)
VALUES 
    (1, 'Max Mustermann', 'Berlin'),
    (2, 'Anna Müller', 'Hamburg'),
    (3, 'Tom Schmidt', 'München');

Nach der Ausführung dieses Befehls sieht die Tabelle Kunden so aus:

ID Name Stadt
1 Max Mustermann Berlin
2 Anna Müller Hamburg
3 Tom Schmidt München

Beispiel 2: Einfügen ohne Angabe aller Spalten

Falls du nicht alle Spalten angeben möchtest (z. B. weil einige Spalten automatisch befüllt werden), kannst du die Spalten weglassen. Angenommen, die ID ist ein Auto-Increment-Feld (wird automatisch vergeben):

INSERT INTO Kunden (Name, Stadt)
VALUES 
    ('Lisa Bauer', 'Köln'),
    ('Paul Weber', 'Frankfurt'),
    ('Julia Fischer', 'Stuttgart');

Die ID wird automatisch vergeben, und die Tabelle könnte danach so aussehen:

ID Name Stadt
1 Max Mustermann Berlin
2 Anna Müller Hamburg
3 Tom Schmidt München
4 Lisa Bauer Köln
5 Paul Weber Frankfurt
6 Julia Fischer Stuttgart

Beispiel 3: Einfügen mit NULL-Werten

Manchmal möchtest du vielleicht nicht für jede Spalte einen Wert angeben. In solchen Fällen kannst du NULL verwenden. Angenommen, die Spalte Stadt ist optional:

INSERT INTO Kunden (ID, Name, Stadt)
VALUES 
    (7, 'Sarah Klein', NULL),
    (8, 'Michael Groß', 'Düsseldorf');

Die Tabelle würde dann so aussehen:

ID Name Stadt
7 Sarah Klein NULL
8 Michael Groß Düsseldorf

Tipps und Best Practices

  1. Spaltennamen angeben: Auch wenn es optional ist, solltest du immer die Spaltennamen angeben. Das macht deinen Code robuster und weniger fehleranfällig.
  2. Datenintegrität prüfen: Stelle sicher, dass die Werte, die du einfügst, den Datentypen und Constraints der Tabelle entsprechen.
  3. Transaktionen verwenden: Wenn du viele Zeilen einfügst, kann es sinnvoll sein, eine Transaktion zu verwenden, um die Konsistenz deiner Daten zu gewährleisten.

Fazit

Das Einfügen mehrerer Zeilen in SQL ist eine einfache und effiziente Methode, um große Datenmengen in deine Datenbank zu importieren. Mit der INSERT INTO ... VALUES-Syntax kannst du mehrere Zeilen in einem einzigen Befehl hinzufügen, was deinen Code sauberer und performanter macht. Probiere die Beispiele aus und integriere diese Technik in deine tägliche Arbeit mit SQL!

--