TOP

SQL INSERT INTO SELECT

INSERT INTO SELECT Beschreibung

Die SQL-Anweisung INSERT INTO SELECT kopiert Daten aus einer Tabelle und fügt sie in eine andere Tabelle ein.

Die INSERT INTO SELECT-Anweisung erfordert, dass die Datentypen in den Quell- und Zieltabellen übereinstimmen.


Vorhandene Datensätze in der Zieltabelle bleiben erhalten und werden vom Kopiervorgang nicht beeinflusst.

INSERT INTO SELECT Syntax

Kopiert alle Spalten von einer Tabelle in eine andere:

INSERT INTO table2
SELECT * 
FROM table1
WHERE condition

Kopiert nur einige Spalten von einer Tabelle in eine andere:

INSERT INTO table2 (column1, column2, column3, ...)
SELECT column1, column2, column3, ...
FROM table1
WHERE condition

Demonstrationsdatenbank

In diesem Tutorial verwenden wir die berühmte Beispieldatenbank „Northwind“.

Nachfolgend finden Sie ein Beispiel aus der Tabelle „Customers“ („Kunden“):

CustomerIDCustomerNameContactNameAddressCityPostalCodeCountry
1Alfreds FutterkisteMaria AndersObere Str. 57Berlin12209Germany
2Ana Trujillo Emparedados y heladosAna TrujilloAvda. de la Constitución 2222México D.F.5021Mexico
3Antonio Moreno TaqueríaAntonio MorenoMataderos 2312México D.F.5023Mexico
4Around the HornThomas Hardy120 Hanover Sq.LondonWA1 1DPUK
5Berglunds snabbköpChristina BerglundBerguvsvägen 8LuleåS-958 22Sweden

Und das Beispiel aus der Tabelle „Suppliers“ („Suppliers“):

SupplierIDSupplierNameContactNameAddressCityPostalCodeCountryPhone
1Exotic LiquidCharlotte Cooper49 Gilbert St.LondonaEC1 4SDUK(171) 555-2222
2New Orleans Cajun DelightsShelley BurkeP.O. Box 78934New Orleans70117USA(100) 555-4822
3Grandma Kelly's HomesteadRegina Murphy707 Oxford Rd.Ann Arbor48104USA(313) 555-5735
4Tokyo TradersYoshi Nagase9-8 Sekimai Musashino-shiTokyo100Japan(03) 3555-5011
5Cooperativa de Quesos 'Las Cabras'Antonio del Valle SaavedraCalle del Rosal 4Oviedo33007Spain(98) 598 76 54

INSERT INTO SELECT Beispiele

Die folgende SQL-Abfrage kopiert „Suppliers“ („Lieferanten“) nach „Customers“ („Kunden“) (Spalten, die nicht mit Daten gefüllt sind, enthalten NULL):

INSERT INTO Customers (CustomerName, City, Country)
SELECT SupplierName, City, Country 
FROM Suppliers

Eine andere Version der SQL-Abfrage kopiert Daten aus der Tabelle „Lieferanten“ nach „Kunden“ (füllt alle Spalten):

INSERT INTO Customers (CustomerName, ContactName, Address, City, PostalCode, Country)
SELECT SupplierName, ContactName, Address, City, PostalCode, Country 
FROM Suppliers

Die folgende SQL-Anweisung kopiert nur deutsche Lieferanten in die Tabelle „Kunden“:

INSERT INTO Customers (CustomerName, City, Country)
SELECT SupplierName, City, Country 
FROM Suppliers
WHERE Country = 'Germany'