Dieser Artikel enthält grundlegendes SQL INSERT
Anweisungen, mit denen Anfänger Daten in ihre Datenbanktabellen einfügen können.
Grundlegende Syntax
Die grundlegende Syntax zum Einfügen von Daten in SQL lautet wie folgt:
INSERT INTO TableName (Column1, Column2, Column3, ...)
VALUES (Value1, Value2, Value3, ...);
Wo:
TableName
ist der Name der Tabelle, in die Sie Daten einfügen möchtenColumn1
, etc sind die Namen der Spalten, in die Sie Daten einfügen möchtenValue1
usw. sind die Werte, die Sie in diese Spalten einfügen. Die Reihenfolge dieser Werte muss mit der Reihenfolge übereinstimmen, in der Sie die Spalten aufgelistet haben (d. h.Value1
geht inColumn1
usw.).
Sie können die Spaltennamen weglassen, wenn Sie Werte in alle Spalten einfügen. In diesem Fall können Sie die folgende Syntax verwenden:
INSERT INTO TableName
VALUES (Value1, Value2, Value3, ...);
Beachten Sie, dass einige DBMSs eine komplexere Syntax als diese verwenden (d. h. sie bieten mehr Optionen), aber dies ist im Allgemeinen die grundlegende Syntax, die zum Einfügen von Daten in eine Tabelle erforderlich ist.
In alle Spalten einfügen
Hier ist ein einfaches Beispiel, das Daten in alle Spalten der Tabelle einfügt:
INSERT INTO PetTypes
VALUES( 1, 'Bird' );
In diesem Fall gibt es zwei Spalten in PetTypes
Tabelle, und wir fügen Werte in beide Spalten ein, daher müssen wir die Spaltennamen nicht angeben.
Die obige Anweisung ist dasselbe wie dies:
INSERT INTO PetTypes( PetTypeId, PetType )
VALUES( 1, 'Bird' );
Wir können unsere Daten überprüfen, indem wir ein SELECT
ausführen Aussage.
SELECT * FROM PetTypes;
Ergebnis:
+-------------+-----------+ | PetTypeId | PetType | |-------------+-----------| | 1 | Bird | +-------------+-----------+
In einige Spalten einfügen
Hier ist ein einfaches Beispiel, das Daten nur in einige Spalten der Tabelle einfügt:
INSERT INTO Users( UserId, FirstName, LastName )
VALUES( 1, 'Lansell', 'Letterman' );
Diese Tabelle hat eigentlich vier Spalten, aber wir fügen nur Daten in drei dieser Spalten ein. Wir können das sehen, wenn wir ein SELECT
ausführen Anweisung gegen die Tabelle nach dem Einfügen der Daten.
SELECT * FROM Users;
Ergebnis:
+----------+-------------+------------+-----------------------------+ | UserId | FirstName | LastName | DateInserted | |----------+-------------+------------+-----------------------------| | 1 | Lansell | Letterman | 2020-11-21 05:18:50.0029455 | +----------+-------------+------------+-----------------------------+
Wie man Werte in der falschen Reihenfolge einfügt
Mit der Spaltenlistenmethode können Sie Daten einfügen, die sich nicht in derselben Reihenfolge befinden:
INSERT INTO Users( LastName, FirstName, UserId )
VALUES( 'Pitt', 'Bart', 2 );
In diesem Beispiel habe ich die Reihenfolge der Spalten und ihrer jeweiligen Werte neu angeordnet. Glücklicherweise bietet die Spaltenliste dem DBMS eine Anleitung, wo jeder Wert eingefügt werden sollte.
Wenn wir also jetzt unsere Daten auswählen, sehen wir, dass sie in die richtigen Spalten eingefügt wurden.
SELECT * FROM Users;
Ergebnis:
+----------+-------------+------------+-----------------------------+ | UserId | FirstName | LastName | DateInserted | |----------+-------------+------------+-----------------------------| | 1 | Lansell | Letterman | 2020-11-21 05:18:50.0029455 | | 2 | Bart | Pitt | 2020-11-21 05:30:07.4456867 | +----------+-------------+------------+-----------------------------+
Fügen Sie das Ergebnis einer Abfrage ein
Es ist auch möglich, die Ergebnismenge einer Abfrage in eine Tabelle einzufügen. Es gibt ein paar Ansätze, die Sie dabei verfolgen können.
- Verwenden Sie den
INSERT INTO... SELECT
Erklärung. In diesem Fall müssen Sie zuerst die Tabelle erstellen, bevor Sie eine Abfrageergebnismenge darin einfügen. - Verwenden Sie die CREATE TABLE … AS SELECT-Anweisung. Diese Methode erstellt basierend auf der Ergebnismenge der Abfrage automatisch eine neue Tabelle und fügt diese Ergebnisse dann in die Tabelle ein. Obwohl diese Methode dem SQL-Standard entspricht, wird sie nicht von allen DBMSs unterstützt.
- Verwenden Sie den
SELECT INTO
Erklärung. Dies ähnelt der vorherigen Option. Es erstellt automatisch eine neue Tabelle basierend auf der Ergebnismenge der Abfrage und fügt diese Ergebnisse dann in die Tabelle ein. Wenn die vorherige Methode (CREATE TABLE ... AS SELECT
) von Ihrem DBMS nicht unterstützt wird, versuchen Sie es mit dieser Methode.