Insert into … values ( SELECT … FROM … )

Definition:
Der SQL-Befehl “INSERT INTO” wird dazu verwendet, Daten in eine Tabelle einzufügen. Es gibt verschiedene Methoden, dies zu tun, aber eine gängige Technik ist das Kombinieren von “INSERT INTO” mit einem “SELECT”-Befehl. Anstatt konkrete Werte mit dem “VALUES”-Klausel manuell einzufügen, kann man Daten aus einer anderen Tabelle oder sogar derselben Tabelle mittels eines “SELECT”-Befehls hinzufügen.

Struktur:
Die allgemeine Syntax dieser Kombination sieht wie folgt aus:

INSERT INTO ziel_tabelle (spalte1, spalte2, ... spalteN)
SELECT spalte1, spalte2, ... spalteN
FROM quelle_tabelle
WHERE bedingung;

Beispiel:
Angenommen, wir haben zwei Tabellen: Mitarbeiter und ExMitarbeiter. Man möchte alle ExMitarbeiter, die vor 2020 ausgetreten sind, wieder in die Mitarbeiter-Tabelle aufnehmen:

INSERT INTO Mitarbeiter (MitarbeiterID, Name, Position)
SELECT MitarbeiterID, Name, Position
FROM ExMitarbeiter
WHERE Austrittsdatum < '2020-01-01';

Bedeutung:
Das Kombinieren von “INSERT INTO” mit “SELECT” bietet den Vorteil, große Mengen von Daten zwischen Tabellen zu verschieben, ohne jeden einzelnen Datensatz manuell spezifizieren zu müssen. Es ist besonders nützlich in Szenarien, in denen Daten von einer Tabelle zur anderen migriert, archiviert oder kopiert werden müssen.

Zusammenfassung:
Der SQL-Befehl “INSERT INTO … VALUES (SELECT … FROM …)” ermöglicht es, Daten aus einer Quelltabelle direkt in eine Zieltabelle zu übertragen. Dies optimiert den Datenmanipulationsprozess und fördert Effizienz in datenbasierten Aufgaben.