Zurück zur Artikelliste Artikel
6 Leseminuten

Was ist die INSERT-Anweisung in SQL?

Die INSERT-Anweisung in SQL wird verwendet, um neue Daten zu Ihrer Datenbank hinzuzufügen. In diesem Artikel wird erklärt, wie man sie verwendet, und es werden praktische Beispiele gezeigt.

Wenn Sie SQL lernen, konzentrieren Sie sich darauf, Daten aus einer Datenbank abzurufen, und arbeiten hauptsächlich mit SELECT. In SQL gibt es auch Anweisungen, mit denen Sie Daten in einer Datenbank ändern können.

Die erste ist die Anweisung INSERT: Sie fügt Daten zu einer Tabelle hinzu. Die Daten werden als neue Zeile in die Tabelle eingefügt.

Die SQL-Anweisung INSERT fügt eine oder mehrere Datenzeilen in eine Tabelle ein. Sie können INSERT auch als INSERT INTO geschrieben sehen, aber beide verhalten sich gleich. Die Angabe von INTO ist in den meisten SQL-Varianten optional.

Die Anweisung INSERT gilt als SQL-Befehl zur Datenmanipulation. Die anderen Befehle sind UPDATE und DELETE, die Sie in diesem zugänglichen Kurs How to INSERT, UPDATE, or DELETE Data in SQL von LearnSQL.de kennenlernen können .

SQL INSERT-Syntax

Die Syntax von SQL INSERT hat zwei Formen:

  1. Verwendung von INSERT mit Spaltennamen.
  2. Verwendung von INSERT ohne Spaltennamen.

Schauen wir uns die feinen Unterschiede zwischen den beiden Formen und die Regeln an, die für jede Syntax gelten.

SQL INSERT-Syntax mit Spaltennamen

Die Syntax für die Verwendung von INSERT mit angegebenen Spaltennamen lautet wie folgt:

INSERT INTO table_name (column1, column2, column3, ...)
VALUES (value1, value2, value3, ...);

Wenn Sie Spalten auf diese Weise angeben, müssen die Spalten und die Werte in Reihenfolge, Datentyp und Anzahl übereinstimmen. Wenn Sie einen String-Wert einfügen, muss dieser in Anführungszeichen gesetzt werden. Numerische Werte brauchen nicht in Anführungszeichen gesetzt zu werden.

Stellen Sie sich zum Beispiel vor, Sie hätten eine Tabelle mit den folgenden Spalten:

CREATE TABLE person (name varchar(255), age int, date_of_birth date);

Wir müssen unsere SQL-Abfrage so schreiben, dass der Datentyp jeder Spalte berücksichtigt wird:

INSERT INTO person (name, age, date_of_birth)
VALUES ('John Doe', 25, '1996-02-18');

Wenn Sie solche Spaltennamen einfügen, können Sie je nach Tabellendefinition bestimmte Werte weglassen. Wenn die Tabellenspalten zum Beispiel NULL Werte zulassen oder mit Standardwerten eingerichtet wurden, können Sie diese Spalten ganz aus Ihrer INSERT -Anweisung ausschließen.

Stellen Sie sich vor, die folgende Tabelle wurde erstellt und für die Spalte date_of_birth wurde ein Wert DEFAULT angegeben:

CREATE TABLE person (name varchar(255), age int, date_of_birth date DEFAULT ('1900-01-01'));

Wenn Sie nun die folgende Abfrage schreiben und die Spalte date_of_birth vollständig aus unserer INSERT INTO -Anweisung ausschließen, wird sie mit dem Wert DEFAULT statt mit NULL gefüllt.

INSERT INTO person (name, age)
VALUES ('John Doe', 25);

Zeigen Sie das Ergebnis von INSERT an, indem Sie aus Ihrer Tabelle auswählen:

SELECT * from person
nameagedate_of_birth
John Doe251900-01-01

Es wird Zeit, dass wir uns ansehen, wie sich die Syntax ändert, wenn Sie INSERT ohne Angabe der Spaltennamen verwenden.

SQL INSERT-Syntax ohne Spaltennamen

Die Syntax für die Verwendung von INSERT ohne Spaltennamen lautet wie folgt:

INSERT INTO table_name
VALUES (value1, value2, value3, ...);

Wenn Sie sich dafür entscheiden, die Spaltennamen nicht aufzulisten, müssen Sie Werte in jede Spalte Ihrer Tabelle einfügen und dabei auf die richtige Reihenfolge achten. Die richtige Reihenfolge der Spalten können Sie anhand des Informationsschemas für Ihre Tabelle ermitteln.

Wenden wir diese Syntax nun auf ein praktisches Beispiel an. Erstellen wir eine einfache Tabelle, wie wir es zuvor getan haben:

CREATE TABLE person (name varchar(255), age int, date_of_birth date);

Damit ist unsere Tabelle erstellt, aber wie können wir ihr mehrere Datenzeilen hinzufügen, ohne die Spaltennamen anzugeben? Sie können einfach diese Abfrage schreiben:

INSERT INTO person
VALUES ('John Doe', 25, '1996-02-18'),
VALUES ('Ben Watson', 31, '1990-04-16'),
VALUES ('Lucy Smith', 27, '1993-06-29');

Beachten Sie, dass die Werte in der Reihenfolge der Tabellendefinition aufgeführt werden: zuerst der Name der Person, dann das Alter und schließlich das Geburtsdatum. Mit dieser Syntax können Sie keine Spalten auslassen; Sie müssen für jede Spalte einen Wert angeben. Beachten Sie, dass die Werte in den einzelnen Zeilen durch Kommas getrennt werden und dass die Werte einer Zeile von denen einer anderen Zeile durch ein Semikolon getrennt werden. Auf diese Weise können wir mehrere Zeilen hinzufügen, ohne die Spaltennamen selbst verwenden zu müssen.

Wie INSERT INTO eine bestehende Tabelle

Für diese Beispiele stellen wir uns vor, dass wir eine bestehende Tabelle namens people. Sie enthält den Vornamen, den Nachnamen und das Alter der Person.

people

first_namelast_nameage
JohnSmith23
MaryConway54
PaulJohnson33

Wie fügen wir nun eine neue Person zu dieser Tabelle hinzu? Sehen Sie sich die folgende SQL-Abfrage an:

INSERT INTO people (first_name, last_name, age)
VALUES ('Sandra', 'Cruz', 28);

Beachten Sie, dass wir uns an die zuvor erwähnten Regeln halten. Die Reihenfolge, der Datentyp und die Anzahl der Spalten und Werte stimmen überein. Die String-Werte sind auch in Anführungszeichen für first_name und last_name eingeschlossen. Das Fehlen dieser Anführungszeichen würde zu einem Fehler führen.

Wir haben erfolgreich eine Person zu unserer Tabelle hinzugefügt. Aber stellen Sie sich vor, wir müssten mehrere Personen hinzufügen. Das Schreiben mehrerer INSERT Anweisungen wäre sehr zeitaufwändig. Zum Glück gibt es einen besseren Weg.

Schauen wir uns ein Beispiel für das Hinzufügen mehrerer Datenzeilen zu unserer Tabelle an, bei dem wir die Spaltennamen nicht angeben.

INSERT INTO people
VALUES
	('Jacob', 'Ward', 40),
	('Stacey', 'Tuite', 65),
('Thomas', 'Rice', 43);

Sie sehen, wie viel Zeit Sie mit dieser Syntax sparen können, wenn Sie viele Zeilen auf einmal zu Ihrer Tabelle hinzufügen wollen.

Weitere Beispiele und eine ausführliche Erklärung finden Sie in einem Kurs, der sich mit diesem Thema befasst. In diesem Blogbeitrag werden die Vorteile eines Kurses erläutert, der sich auf die Befehle INSERT, UPDATE und DELETE spezialisiert. Beim Nachvollziehen dieser Beispiele ist es wichtig zu verstehen, wie sich Berechtigungen auf die Verwendung der Anweisung INSERT auswirken können.

SQL INSERT-Berechtigungen

Sie benötigen die Berechtigung INSERT, um Daten in eine Datenbank einzufügen. Es ist möglich, dass Sie nur die Erlaubnis haben, die Daten auszuwählen, insbesondere wenn Sie mit einer Datenbank arbeiten, für die Sie nicht der Administrator sind. Wenn dies der Fall ist, dürfen Sie keine Daten in eine Tabelle einfügen und müssen Ihren Datenbankadministrator um diese Rechte bitten.

Mit SQL INSERT neue Daten in Ihre Tabellen einfügen

Damit ist unser Artikel über SQL INSERT abgeschlossen. Wir haben die feinen Unterschiede zwischen dem Hinzufügen einzelner oder mehrerer Zeilen zu Ihrer Tabelle besprochen, so dass Sie die Daten auf die effektivste Weise hinzufügen können. Wir sind auch auf die Berechtigungen eingegangen, die Sie möglicherweise benötigen, wenn Sie nicht der Administrator Ihrer Datenbank sind. Setzen Sie ein Lesezeichen auf diese Seite, damit Sie jederzeit darauf zurückgreifen können. Wir haben bereits erwähnt, dass INSERT eine der Möglichkeiten ist, die Daten in Ihren Tabellen zu ändern. Die anderen Befehle, die Daten ändern, sind UPDATE und DELETE. Erfahren Sie mehr über diese Befehle in diesem Artikel über INSERT, UPDATE und DELETE.