SQL - Insert Into Select: Ein umfassender Leitfaden für Anfänger

Hallo, ambitionierte SQL-Enthusiasten! Ich freue mich sehr, Ihr Guide auf dieser aufregenden Reise in die Welt der SQL-Insert Into Select-Anweisung zu sein. Als jemand, der seit Jahren Informatik unterrichtet, kann ich Ihnen versichern, dass das Beherrschen dieses Konzepts ein Game-Changer für Ihre Datenbankmanagement-Fähigkeiten sein wird. Also, tauchen wir ein!

SQL - Insert Into Select

Die Insert Into... Select-Anweisung: Der neue beste Freund Ihrer Daten

Was ist das?

Die Insert Into Select-Anweisung ist wie eine magische Zauberstab in SQL. Sie ermöglicht es Ihnen, Daten von einer Tabelle zu kopieren und sie in einer fließenden Bewegung in eine andere Tabelle einzufügen. Stellen Sie sich vor, Sie ziehen in ein neues Haus - anstatt jedes Item einzeln zu tragen, verwenden Sie einen Umzugswagen, um alles auf einmal zu übertragen. Genau das tut Insert Into Select für Ihre Daten!

Grundlegende Syntax

Lassen Sie uns mit der grundlegenden Struktur beginnen:

INSERT INTO tabelle2 (spalte1, spalte2, spalte3, ...)
SELECT spalte1, spalte2, spalte3, ...
FROM tabelle1
WHERE bedingung;

Hier ist, was jeder Teil macht:

  • INSERT INTO tabelle2: Dies ist, wo Sie Ihre Daten hineinbewegen.
  • (spalte1, spalte2, spalte3, ...): Dies sind die Spalten in Ihrer neuen Tabelle.
  • SELECT: Dies ist, wo Sie die Daten auswählen, die Sie bewegen möchten.
  • FROM tabelle1: Dies ist die Quelle Ihrer Daten.
  • WHERE bedingung: Dies ist optional, aber es ermöglicht Ihnen, die Daten zu filtern, die Sie bewegen.

Ein einfaches Beispiel

Angenommen, wir haben zwei Tabellen: alte_mitarbeiter und neue_mitarbeiter. Wir möchten alle Mitarbeiter über 30 in die neue Tabelle verschieben.

INSERT INTO neue_mitarbeiter (id, name, alter, abteilung)
SELECT id, name, alter, abteilung
FROM alte_mitarbeiter
WHERE alter > 30;

Dieser Befehl kopiert alle Mitarbeiter über 30 aus der alte_mitarbeiter-Tabelle in die neue_mitarbeiter-Tabelle. Es ist, als würde man allen Mitarbeitern über 30 sagen: "Hey, ihr zieht in ein neues Büro!"

SQL - Einfügen spezifischer Datensätze: Auswählen Ihrer Daten

Manchmal möchten Sie nicht alles bewegen. Vielleicht möchten Sie nur spezifische Datensätze auswählen. Lassen Sie uns erkunden, wie man das macht!

Beispiel 1: Einfügen basierend auf mehreren Bedingungen

Stellen Sie sich vor, wir möchten nur die Mitarbeiter der IT-Abteilung, die älter als 25 sind, in eine neue it_team-Tabelle verschieben.

INSERT INTO it_team (id, name, alter)
SELECT id, name, alter
FROM alte_mitarbeiter
WHERE abteilung = 'IT' AND alter > 25;

Das ist so, als würde man sagen: "Wenn du in der IT bist und älter als 25 bist, willkommen im neuen Team!"

Beispiel 2: Verwenden der OR-Bedingung

Angenommen, wir möchten Mitarbeiter, die entweder in der IT- oder HR-Abteilung sind, verschieben.

INSERT INTO neuer_abteilung (id, name, abteilung)
SELECT id, name, abteilung
FROM alte_mitarbeiter
WHERE abteilung = 'IT' OR abteilung = 'HR';

Das ist, als würde man ankündigen: "IT- und HR-Mitarbeiter, ihr alle zieht auf eine neue Etage!"

SQL - Einfügen der obersten N Zeilen: Die VIP-Behandlung

Manchmal möchten Sie nur eine bestimmte Anzahl von Zeilen bewegen. SQL hat Sie mit dem TOP-Klausel (oder LIMIT in einigen Datenbanken) abgedeckt.

Beispiel: Verschieben der Top 5 bestbezahlten Mitarbeiter

INSERT INTO top_verdiener (id, name, gehalt)
SELECT TOP 5 id, name, gehalt
FROM mitarbeiter
ORDER BY gehalt DESC;

Das ist, als würde man eine "Ruhmeshalle" für Ihre Top 5 Verdiener erstellen!

Unterschiedliche Syntaxen für verschiedene Datenbanken

Verschiedene Datenbanksysteme könnten eine leicht unterschiedliche Syntax für dies verwenden. Hier ist eine praktische Tabelle:

Datenbanksystem Syntax
SQL Server SELECT TOP 5 ...
MySQL SELECT ... LIMIT 5
Oracle SELECT ... WHERE ROWNUM <= 5
PostgreSQL SELECT ... LIMIT 5

Alles zusammenfügen: Ein realistisches Szenario

Stellen wir uns vor, wir verwalten eine Bibliotheksdatenbank. Wir haben eine bücher-Tabelle und möchten eine beliebte_bücher-Tabelle erstellen, die Bücher enthält, die im letzten Jahr mehr als 100 Mal ausgeliehen wurden.

CREATE TABLE beliebte_bücher (
id INT,
titel VARCHAR(100),
autor VARCHAR(100),
ausleih_zahl INT
);

INSERT INTO beliebte_bücher (id, titel, autor, ausleih_zahl)
SELECT id, titel, autor, ausleih_zahl
FROM bücher
WHERE ausleih_zahl > 100 AND letzter_ausleihe >= DATE_SUB(CURDATE(), INTERVAL 1 JAHR)
ORDER BY ausleih_zahl DESC
LIMIT 10;

Dieses Skript macht mehrere Dinge:

  1. Erstellt eine neue beliebte_bücher-Tabelle.
  2. Wählt Bücher aus der bücher-Tabelle aus, die unseren Kriterien entsprechen.
  3. Sortiert sie nach der Ausleihzahl.
  4. Beschränkt die Auswahl auf die Top 10.

Es ist, als würde man eine "Mitarbeiterempfehlungen"-Regal in Ihrer Bibliothek erstellen, aber lassen die Daten entscheiden, was darauf landet!

Schlussfolgerung: Ihre neue Daten-Superkraft

Und da haben Sie es, Leute! Sie haben gerade gelernt, die Insert Into Select-Anweisung wie ein Profi zu verwenden. Denken Sie daran, dass es mehr als nur das Bewegen von Daten ist - es geht darum, Ihre Informationen effizient zu verwalten und zu analysieren.

Während Sie diese Techniken üben, werden Sie feststellen, dass Sie zu einem Daten-Zauberer werden, der Informationen auf Weise schneiden und schneiden kann, die Sie nie für möglich gehalten haben. Es ist wie das Kochen - am Anfang folgen Sie Rezepten, aber bald werden Sie eigene Daten-Gerichte erstellen!

Weiterspielen, weiterlernen und vor allem: Spaß daran haben. SQL mag am Anfang einschüchternd erscheinen, aber glauben Sie mir, wenn es klickt, werden Sie sich fragen, wie Sie jemals ohne es Daten verwaltet haben.

Frohes Abfragen und möge Ihre Daten immer sauber sein und Ihre Joins immer fließend sein!

Credits: Image by storyset