Webentwicklung mal ganz einfach!
← Zurück zur Übersicht

MySQL: INSERT INTO - die Qual der Wahl

Publiziert am von Markus Hauser

Wenn man einen Eintrag in eine MySQL Datenbank speichern will, verwendet man die INSERT INTO Syntax. Was viele nicht wissen ist, dass es hierbei zwei verschiedene Schreibweisen gibt. Welche das sind, sowie deren Vor- und Nachteile, werden hier kurz erläutert.

Weitläufig bekannt: Die Variante VALUES

INSERT INTO tabellenname (spalte1, spalte2)
    VALUES ('wert1', 'wert2');

Hier werden innerhalb der ersten runden Klammern die Spalten der MySQL-Tabelle angegeben, für die man Werte vergeben möchte. Durch das Schlüsselwort VALUES teilt man der Datenbank mit, dass jetzt die Werte folgen werden. Diese werden wiederum mit runden Klammern umschlossen und die Reihenfolge der Werte muss dieselbe sein wie die Reihenfolge der Spalten. Was allerdings nicht jedem bekannt ist: Hier gibt es eine weitere Schreibweise, die mir im Nachhinein logischer erscheint, da sie sich mit der UPDATE-Syntax, welche zum Ändern eines Datensatzes zuständig ist, deckt.

Praktisch und kurz: Die Variante SET

INSERT INTO tabellenname
    SET spalte1 = 'wert1', spalte2 = 'wert2';

Hier folgt, wie bei der UPDATE-Syntax, auf den Tabellenname das Schlüsselwort SET. Gefolgt wird es von einem Spaltennamen für den man einen Wert vergeben möchte, einem Gleichheitszeichen, sowie dem Wert den man für diese Spalte speichern möchte. Gerade wenn man sich als Neuling mit MySQL beschäftigt, denke ich dass es sehr dienlich ist, wenn man sich eine Schreibweise weniger merken muss, da sie ident mit der UPDATE-Syntax ist. Da gibt es genug andere programmiertechnische Sachen die man sich anstatt dessen merken kann.

Warum zwei Schreibweisen: Der Unterschied

Die zwei Schreibweisen gibt es allerdings nicht umsonst, es existiert ein kleiner Unterschied. Die Variante SET fügt immer genau einen Datensatz ein. Mit der Variante VALUES hingegen ist es möglich, zwei und mehr Datensätze mit nur einer SQL-Query in eine Tabelle einzufügen.

INSERT INTO tabellenname (spalte1, spalte2)
    VALUES ('wert1', 'wert2'), ('foo','bar'), ('val1','val2');

Durch trenne mit Kommas kann man mehrere Wert-Blöcke hintereinander schreiben und jeder ergibt einen separaten, neuen Datensatz in der Tabelle.

Mein Fazit

In fast allen Fällen ist es nötig, genau einen Datensatz in die Datenbank einzufügen, somit empfehle ich jeden Neuling auf diesem Gebiet die Variante SET, da sie sich mit dem UPDATE-Befehl die Syntax teilt. Wenn man soweit ist, dass man mehrere Datensätze gleichzeitig einfügen muss, ist man normalerweise auch mit seinen Programmiererfahrungen weit genug, dass man sich eine zweite Schreibweise leicht merken kann.

Markus

← Zurück zur Übersicht
Eingeordnet in: PHP / MySQL
Lesezeichen: Permalink zum Beitrag

Kommentare

Es sind noch keine Kommentare vorhanden.

← Zurück zur Übersicht