Beispiel für eine SQL

Beispielszenario einer SQL

Ossi Galkin avatarGeschrieben vonOssi Galkin Vor über einer Woche aktualisiertTable of contents

Konkretes Beispiel

Nehmen wir an, wir haben zwei Tabellen in einer Datenbank, „Employee“ und „Salary“, mit den folgenden Daten:

Mitarbeiter: +----+---------+----------+ | ID | Name | Abteilung| +----+---------+----------+ | 1 | John | Vertrieb | | 2 | Jane | Marketing | | 3 | Bob | Vertrieb | | 4 | Alice | Marketing | +----+---------+----------+

Gehalt: +----------+--------+ | Mitarbeiter-ID | Gehalt | +----------+--------+ | 1 | 50000 | | 1 | 55000 | | 2 | 65000 | | 3 | 60000 | | 4 | 70000 | +----------+--------+

Wenn wir die folgende SQL-Abfrage für diese Daten ausführen:

SELECT e.name, e.abteilung, SUM(s.gehalt) AS gesamtgehalt FROM mitarbeiter e JOIN gehalt s ON e.id = s.mitarbeiter_id GROUP BY e.abteilung, e.name

Das Ergebnis ist die folgende Tabelle:

+---------+-----------+-------------+ | Name | Abteilung| Gesamtgehalt| +---------+-----------+-------------+ | John | Vertrieb | 105000 | | Jane | Marketing | 65000 | | Bob | Vertrieb | 60000 | | Alice | Marketing | 70000 | +---------+-----------+-------------+

In diesem Beispiel sind die Eingabedaten die Mitarbeiter- und Gehaltstabellen und die Ausgabe ist eine Tabelle mit dem Namen, der Abteilung und dem Gesamtgehalt jedes Mitarbeiters, gruppiert nach Abteilung. Die Operation (INNER) JOIN wird verwendet, um die Daten aus den beiden Tabellen basierend auf den Spalten „id“ und „employee_id“ zu kombinieren, und die Klausel GROUP BY wird verwendet, um die Ergebnisse nach den Spalten „department“ und „name“ zu gruppieren. Die Aggregatfunktion SUM wird verwendet, um das Gesamtgehalt für jede Gruppe zu berechnen.

Andere häufig verwendete JOIN-Optionen sind LEFT JOIN und RIGHT JOIN. LEFT JOIN wählt alle Zeilen aus der linken Tabelle des Joins und die passenden Datensätze aus der rechten Tabelle aus, während RIGHT JOIN alle Zeilen aus der rechten Tabelle des Joins und die passenden Datensätze aus der linken Tabelle auswählt. Es gibt auch einen CROSS JOIN, der mit oder ohne WHERE-Bedingung (ON) verwendet werden kann. Wenn er ohne die WHERE-Bedingung verwendet wird, erzeugt er einen Ergebnissatz, der die Anzahl der Zeilen in der ersten Tabelle multipliziert mit der Anzahl der Zeilen in der zweiten Tabelle ist; mit der WHERE-Bedingung funktioniert er wie ein INNER JOIN.

Der nächste Artikel istEinführung in das dynamische Erstellen von Abfragen