Zurück zu: SQL Tutorial
Die SQL INSERT INTO Anweisung
Die INSERT INTO
Anweisung wird verwendet, um neue Datensätze in eine Tabelle einzufügen.
INSERT INTO Syntax
Die INSERT INTO
Anweisung kann auf zwei Arten geschrieben werden:
1. Geben Sie sowohl die Spaltennamen als auch die einzufügenden Werte an:
INSERT INTO table_name (column1, column2, column3, ...)
VALUES (value1, value2, value3, ...);
2. Wenn Sie Werte für alle Spalten der Tabelle hinzufügen, müssen Sie die Spaltennamen in der SQL-Abfrage nicht angeben. Stellen Sie jedoch sicher, dass die Reihenfolge der Werte mit der Reihenfolge der Spalten in der Tabelle übereinstimmt. Hier würde die INSERT INTO-Syntax wie folgt lauten:
INSERT INTO table_name
VALUES (value1, value2, value3, ...);
Demo Datenbank
Nachfolgend sehen Sie eine Auswahl aus der in den Beispielen verwendeten Customers:
CustomerID | CustomerName | ContactName | Address | City | PostalCode | Country |
---|---|---|---|---|---|---|
89 | White Clover Markets | Karl Jablonski | 305 – 14th Ave. S. Suite 3B | Seattle | 98128 | USA |
90 | Wilman Kala | Matti Karttunen | Keskuskatu 45 | Helsinki | 21240 | Finland |
91 | Wolski | Zbyszek | ul. Filtrowa 68 | Walla | 01-012 | Poland |
INSERT INTO Beispiel
Die folgende SQL-Anweisung fügt einen neuen Datensatz in die Tabelle „Kunden“ ein:
Beispiel
INSERT INTO Customers (CustomerName, ContactName, Address, City, PostalCode, Country)
VALUES ('Cardinal', 'Tom B. Erichsen', 'Skagen 21', 'Stavanger', '4006', 'Norway');
Die Auswahl aus der Tabelle „Customers“ sieht nun folgendermaßen aus:
CustomerID | CustomerName | ContactName | Address | City | PostalCode | Country |
---|---|---|---|---|---|---|
89 | White Clover Markets | Karl Jablonski | 305 – 14th Ave. S. Suite 3B | Seattle | 98128 | USA |
90 | Wilman Kala | Matti Karttunen | Keskuskatu 45 | Helsinki | 21240 | Finland |
91 | Wolski | Zbyszek | ul. Filtrowa 68 | Walla | 01-012 | Poland |
92 | Cardinal | Tom B. Erichsen | Skagen 21 | Stavanger | 4006 | Norway |
Ist Ihnen aufgefallen, dass wir in das Feld „CustomerID“ keine Nummer eingefügt haben?
Die Spalte „CustomerID“ ist ein Autoinkrementfeld und wird automatisch generiert, wenn ein neuer Datensatz in die Tabelle eingefügt wird.
Daten nur in angegebene Spalten einfügen
Es ist auch möglich, Daten nur in bestimmte Spalten einzufügen.
Die folgende SQL-Anweisung fügt einen neuen Datensatz ein, fügt aber nur Daten in die Spalten „CustomerName“, „City“ und „Country“ ein (CustomerID wird automatisch aktualisiert):
Beispiel
INSERT INTO Customers (CustomerName, City, Country)
VALUES ('Cardinal', 'Stavanger', 'Norway');
Die Auswahl aus der Tabelle „Customers“ sieht nun folgendermaßen aus:
CustomerID | CustomerName | ContactName | Address | City | PostalCode | Country |
---|---|---|---|---|---|---|
89 | White Clover Markets | Karl Jablonski | 305 – 14th Ave. S. Suite 3B | Seattle | 98128 | USA |
90 | Wilman Kala | Matti Karttunen | Keskuskatu 45 | Helsinki | 21240 | Finland |
91 | Wolski | Zbyszek | ul. Filtrowa 68 | Walla | 01-012 | Poland |
92 | Cardinal | null | null | Stavanger | null | Norway |
Mehrere Zeilen einfügen
Es ist auch möglich, mehrere Zeilen in eine Anweisung einzufügen.
Um mehrere Datenzeilen einzufügen, verwenden wir dieselbe INSERT INTO
Anweisung, jedoch mit mehreren Werten:
Beispiel
INSERT INTO Customers (CustomerName, ContactName, Address, City, PostalCode, Country)
VALUES
('Cardinal', 'Tom B. Erichsen', 'Skagen 21', 'Stavanger', '4006', 'Norway'),
('Greasy Burger', 'Per Olsen', 'Gateveien 15', 'Sandnes', '4306', 'Norway'),
('Tasty Tee', 'Finn Egan', 'Streetroad 19B', 'Liverpool', 'L1 0AA', 'UK');
Stellen Sie sicher, dass Sie die einzelnen Wertesätze durch ein Komma ,
trennen.
Die Auswahl aus der Tabelle „Customers“ sieht nun folgendermaßen aus:
CustomerID | CustomerName | ContactName | Address | City | PostalCode | Country |
---|---|---|---|---|---|---|
89 | White Clover Markets | Karl Jablonski | 305 – 14th Ave. S. Suite 3B | Seattle | 98128 | USA |
90 | Wilman Kala | Matti Karttunen | Keskuskatu 45 | Helsinki | 21240 | Finland |
91 | Wolski | Zbyszek | ul. Filtrowa 68 | Walla | 01-012 | Poland |
92 | Cardinal | Tom B. Erichsen | Skagen 21 | Stavanger | 4006 | Norway |
93 | Greasy Burger | Per Olsen | Gateveien 15 | Sandnes | 4306 | Norway |
94 | Tasty Tee | Finn Egan | Streetroad 19B | Liverpool | L1 0AA | UK |