Kontakt aufnehmen

MySQL: Mit INSERT Daten einfügen

Die INSERT-Anweisung fügt neue Datensätze in eine Tabelle ein. Eingefügt wird immer nur komplette Datensätze (alle Felder): Felder, für die kein Wert angeben wird, werden leer (sog. Null-Wert) angehängt. Es gibt in MySQL 2 Varianten der Syntax: die Aufzählungs- und die SET-Variante. Die Aufzählungsvariante ist kompatibel zu anderen Datenbank-Systemen, deshalb wird sie hier zuerst beschrieben.

INSERT mit Aufzählung

Syntax

INSERT INTO Tabelle (Feldname1, Feldname2, ..., FeldnameN) 
  VALUES (Wert1, Wert2,...WertN);

Tabelle

Hinter INSERT folgt immer INTO, dahinter die Tabelle. Eine INSERT-Anweisung kann immer nur in eine Tabelle einfügen. Wenn man Datensätze in mehrere Tabellen einfügen will, muss man also mehrere INSERT-Anweisungen schreiben.

FIELDS und VALUES

Den FIELDS-Teil kann man unter Umständen auch weglassen, dann muss ich allerdings hinter VALUES alle Felder angeben, und zwar genau in der Reihenfolge, wie sie in der Tabelle stehen. Beispiel:

INSERT INTO Preis VALUES (3, 'grün', 0.5, Null);

Null bedeutet, dass das Feld nicht gefüllt werden soll. Voraussetzung ist allerdings, dass das Feld Verkaufspreis nicht als NOT NULL definiert ist.
Bei Tabellen mit vielen Feldern, von denen nur einige wenige mit Werten gefüllt werden sollen, ist es sinnvoller, nur die Feldinhalte aufzuzählen, die nicht Null sein sollen. Dann muss aber den FIELDS-Teil einfügen, um dort die Feldnamen in der Reihenfolge anzugeben, wie man nachher die Feldinhalte angibt:

INSERT INTO Preis (ArtikelNr, Farbe, Einkaufspreis) 
           VALUES (3        , 'grün', 0.5);

Eine weitere Sonderform von INSERT, die allerdings nicht kompatibel zum offiziellen SQL-Standard ist, ermöglicht es in MySQL , mit einem INSERT-Befehl mehrere Datensätze einzufügen:

INSERT INTO Artikel VALUES 
('Faserstift', 'Stifty',    'Schreibersglück', 1),
('Faserstift', 'Stifty',    'Faserino',        2),
('Faserstift', 'Fasanetic', 'Fasano',          3);

Sonderform: INSERT mit SELECT

Diese Sonderform erlaubt es, beliebig viele Datensätze aus einer Tabelle in eine andere einzufügen. Welche eingefügt werden, hängt vom SELECT-Teil ab. Auch kompliziertere SELECT-Konstruktionen sind möglich. Beispiel:

INSERT INTO Tabelle1 SELECT * FROM Tabelle2;

INSERT mit SET

Diese Form lehnt sich an die Syntax von UPDATE an und ist übersichtlicher als der INSERT mit Aufzählung. Sie ist aber nur in MySQL benutzbar. Beispiel:

INSERT INTO Tabelle SET Feldname1=Wert1, Feldname2=Wert2, ...;

Du arbeitest in einer Agentur oder als Freelancer?
Dann wirf doch mal einen Blick auf unsere Software FeatValue.

Weiterlesen: ⯈ Daten verwalten

Über uns

Stefan Wienströer

Wir entwickeln Webanwendungen mit viel Leidenschaft. Unser Wissen geben wir dabei gerne weiter. Mehr über a coding project

Cookie-Einstellungen

Helfen Sie dabei, uns noch besser zu machen. Wir nutzen Cookies und ähnliche Technologien, um die Website auf Ihre Bedürfnisse anzupassen. Zur Datenschutzerklärung

Auswahl speichern