Database
 sql >> Datenbank >  >> RDS >> Database

SQL INSERT für Anfänger

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öchten
  • Column1 , etc sind die Namen der Spalten, in die Sie Daten einfügen möchten
  • Value1 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 in Column1 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.