Mit MariaDB INSERT INTO schreiben Sie neue Da­ten­sät­ze in eine be­stehen­de Tabelle. Er zählt zu den wich­tigs­ten Grund­be­feh­len in SQL und kommt immer dann zur Anwendung, wenn Sie eine Datenbank mit neuen Inhalten versehen oder be­stehen­de In­for­ma­tio­nen erweitern möchten.

Was ist der MariaDB INSERT-Befehl?

Der INSERT-Befehl in MariaDB fügt neue Daten in eine Tabelle ein. Er ergänzt be­stehen­de Da­ten­struk­tu­ren durch voll­stän­di­ge Zeilen. Immer wenn Nut­ze­rin­nen und Nutzer sich re­gis­trie­ren, ein Formular absenden oder ein Produkt anlegen, führt das System im Hin­ter­grund ein INSERT INTO aus.

MariaDB prüft beim Einfügen, ob die Werte zu den Spal­ten­da­ten­ty­pen passen und ob alle er­for­der­li­chen Felder aus­ge­füllt sind. Verletzen die Werte Ein­schrän­kun­gen wie NOT NULL, UNIQUE oder FOREIGN KEY, lehnt die Datenbank den Vorgang ab. Daher spielen die Struktur der Ziel­ta­bel­le und die korrekte Angabe der Spalten eine wichtige Rolle für den Einsatz von INSERT.

Wie sieht der INSERT INTO-Befehl in MariaDB aus?

Die Standard-Syntax für INSERT INTO lautet:

INSERT INTO table_name (column1, column2, column3)
VALUES (value1, value2, value3);
sql
  • table_name gibt die Tabelle an, in die die Daten ge­schrie­ben werden.
  • Die Spal­ten­lis­te (column1, column2, ...) ist optional, aber emp­feh­lens­wert.
  • Der VALUES-Teil enthält die Werte, die Sie in die an­ge­ge­be­nen Spalten einfügen.

MariaDB ergänzt die Werte in der Rei­hen­fol­ge, in der die Spalten definiert sind. Stimmen Anzahl oder Rei­hen­fol­ge der Werte nicht mit der Spal­ten­lis­te überein, führt das zu einem Fehler.

Compute Engine
Die ideale IaaS für Ihre Workloads
  • Kos­ten­güns­ti­ge vCPUs und leis­tungs­star­ke de­di­zier­te Cores
  • Höchste Fle­xi­bi­li­tät ohne Min­dest­ver­trags­lauf­zeit
  • Inklusive 24/7 Experten-Support

Welche Parameter und Argumente für MariaDB INSERT INTO gibt es?

INSERT INTO lässt sich je nach Bedarf erweitern und anpassen. Hier sind die wich­tigs­ten Parameter und Varianten:

Spal­ten­lis­te

Sie können alle Spalten angeben oder nur bestimmte. Fehlt die Liste, erwartet MariaDB Werte für alle Spalten in der Ta­bel­len­struk­tur.

INSERT INTO users VALUES (1, 'Anna', 'anna@example.com');
sql

Wenn Sie nur spe­zi­fi­sche Spalten füllen möchten, führen Sie den folgenden Befehl aus:

INSERT INTO users (name, email) VALUES ('Anna', 'anna@example.com');
sql

Hier wählen wir die Spalten name und email aus.

Mehrere Zeilen einfügen

Diese Variante ist ef­fi­zi­en­ter als mehrere einzelne MariaDB INSERT-Befehle, besonders bei großen Da­ten­men­gen:

INSERT INTO products (name, price)
VALUES ('pen', 1.50),
    ('notepad', 2.00),
    ('bag', 9.90);
sql

INSERT IGNORE

Mit IGNORE über­springt MariaDB Zeilen, die gegen Ein­schrän­kun­gen verstoßen, und fährt mit den rest­li­chen fort.

INSERT IGNORE INTO users (id, name) VALUES (1, 'Anna');
sql

INSERT ... ON DUPLICATE KEY UPDATE

Dieser Ausdruck ak­tua­li­siert be­stehen­de Zeilen, wenn ein ein­deu­ti­ger Schlüs­sel­kon­flikt entsteht.

INSERT INTO users (id, name)
VALUES (1, 'Anna')
ON DUPLICATE KEY UPDATE name = 'Anna';
sql

Die Technik spart zu­sätz­li­che Abfragen und sorgt dafür, dass Sie Insert- und Update-Logik in einem einzigen Befehl kom­bi­nie­ren. Dies ist sehr praktisch bei Importen, syn­chro­ni­sier­ten Daten oder au­to­ma­ti­sier­ten Bu­chungs­vor­gän­gen.

Einfügen mit SELECT

Mit SELECT kopieren Sie Da­ten­sät­ze von einer Tabelle in eine andere:

INSERT INTO archive_orders (id, status)
SELECT id, status FROM orders WHERE status = 'completed';
sql

An­wen­dungs­bei­spie­le für MariaDB INSERT INTO

Im Folgenden stellen wir Ihnen häufige Ein­satz­sze­na­ri­en für INSERT INTO vor.

User re­gis­trie­ren

In dem nach­fol­gen­den Beispiel fügt MariaDB eine neue Be­nut­ze­rin in die Tabelle users ein. Die Werte für die Spalten name und email stammen aus einem Formular oder einer Anwendung. Der Wert NOW() ruft den aktuellen Zeit­stem­pel ab, also den Zeitpunkt der Re­gis­trie­rung.

INSERT INTO users (name, email, created_at)
VALUES ('Lena', 'lena@example.com', NOW());
sql

Diese Methode eignet sich für klas­si­sche Web­for­mu­la­re wie An­mel­de­mas­ken, bei denen jede Ein­tra­gung direkt in die Datenbank über­nom­men wird. Wichtig ist hier, dass created_at vom Typ DATETIME oder TIMESTAMP ist, damit NOW() korrekt ge­spei­chert wird.

Daten aus einer anderen Tabelle einfügen

Dieses Beispiel zeigt, wie Sie vor­han­de­ne Daten aus einer Tabelle (orders) in eine andere Tabelle (archive_orders) über­neh­men. MariaDB wählt alle Be­stel­lun­gen aus, die den Status 'completed' besitzen, und überträgt die Spalten id und status.

INSERT INTO archive_orders (id, status)
SELECT id, status FROM orders WHERE status = 'completed';
sql

Solche Befehle kommen bei Ar­chi­vie­run­gen, Da­ten­be­rei­ni­gun­gen oder Be­richt­erstel­lun­gen zum Einsatz. Über­prü­fen Sie, dass die Struktur, wie zum Beispiel Spal­ten­ty­pen, zwischen Quell- und Ziel­ta­bel­le über­ein­stimmt, sonst führt MariaDB den Befehl nicht aus.

Managed Database Services
Da­ten­ban­ken – Auf´s We­sent­li­che kon­zen­trie­ren
  • IONOS Cloud-Partner: Die Experten für Ihren Datenbank-Betrieb
  • Flexibel: Maß­ge­schnei­der­te Datenbank-Lösungen ganz auf Ihre Be­dürf­nis­se
  • Re­chen­zen­tren in Deutsch­land: Ihre Daten sind sicher
Zum Hauptmenü