Zurück zur Artikelliste Artikel
7 Leseminuten

Aufzählung und Erläuterung aller grundlegenden Elemente einer SQL-Abfrage

"Was sind die grundlegenden Elemente einer SQL-Abfrage?" ist eine beliebte Frage in einem Vorstellungsgespräch. In diesem Artikel gehen wir auf die grundlegende Syntax einer SQL-Abfrage ein.

Eine SQL-Abfrage, die Informationen aus einer relationalen Datenbank abfragt, besteht aus mehreren Elementen. Diese ermöglichen es Ihnen, bestimmte Spalten aus bestimmten Tabellen auszuwählen und diese Informationen bei Bedarf zu filtern und zu sortieren. In diesem Artikel gehe ich kurz auf diese Elemente ein, indem ich erkläre, was jedes Element bewirkt und wie man es verwendet.

Grundlegende Elemente einer SQL-Abfrage

SELECT

Die Anweisung SELECT ist das erste, was Ihnen beim Erlernen von SQL begegnen wird. Mit der Anweisung SELECT wählen Sie die Spalten aus, die in der Ausgabe angezeigt werden sollen.

Nehmen wir an, wir sind Datenanalysten im Louvre. Wir haben mehrere Tabellen in unserer Datenbank, darunter solche über artworks und artists.

artworks
idtitleartist_idyeartype
111The Mona Lisa121506painting
112Jean-Baptiste Poquelin (Moliere)141787sculpture
113The Wedding Feast at Cana111563painting
114The Lacemaker131670painting
115A River141759sculpture

artists
idnameyear_birthyear_death
11Paolo Veronese15281588
12Leonardo da Vinci14521519
13Johannes Vermeer16321675
14Jean-Jacques Caffieri17251792

Unsere erste Aufgabe besteht darin, einige grundlegende Informationen über die von uns ausgestellten Kunstwerke zu erhalten - insbesondere die title, das Jahr der Erstellung und die Art des Kunstwerks. Hier ist die Abfrage, mit der diese Informationen abgefragt werden:

SELECT title, year, type
FROM artworks;

In der Anweisung SELECT listen wir einfach die Spalten auf, die wir sehen wollen. Hier ist die Ausgabe:

titleyeartype
The Mona Lisa1506painting
Jean-Baptiste Poquelin (Moliere)1787sculpture
The Wedding Feast at Cana1563painting
The Lacemaker1670painting
A River1759sculpture

Weitere Beispiele für SELECT finden Sie in diesem Artikel über das Schreiben einer SELECT-Anweisung. Schauen Sie sich auch unseren SQL für Anfänger Kurs, um SQL interaktiv zu lernen.

FROM

Wie Sie in unserem ersten Beispiel gesehen haben, müssen Sie bei der Auswahl der anzuzeigenden Spalten auch die Tabelle angeben, in der diese Daten gespeichert sind. Dies geschieht mit dem Schlüsselwort FROM.

Im obigen Beispiel haben wir Informationen über verschiedene Kunstwerke angefordert, die (wie erwartet) in der Tabelle artworks Tabelle gespeichert sind.

Nun wollen wir einige grundlegende Informationen über die in unserem Museum vertretenen Künstler abrufen. Zu diesem Zweck fragen wir die Namen, Geburts- und Todesjahre der Künstler aus der Tabelle artists Tabelle ab:

SELECT name, year_birth, year_death
FROM artists;

Hier ist die Ausgabe dieser SQL-Abfrage:

nameyear_birthyear_death
Paolo Veronese15281588
Leonardo da Vinci14521519
Johannes Vermeer16321675
Jean-Jacques Caffieri17251792

JOIN

In vielen Fällen müssen Sie Daten aus mehreren Tabellen zusammenführen, um die gewünschte Ausgabe zu erhalten. Mit der Anweisung JOIN können Sie Informationen aus zwei oder mehr Tabellen in einer SQL-Abfrage abrufen.

Nehmen wir zum Beispiel an, Sie möchten die Namen der Künstler zusammen mit ihren Werken sehen. Diese Informationen sind nicht in einer Tabelle verfügbar: Sie haben den Namen des Kunstwerks in den artworks Tabellen, während der Name des Künstlers in der artists Tabelle. Sie können diese beiden Informationen jedoch leicht über die ID-Nummer des Künstlers verknüpfen, die in beiden Tabellen gespeichert ist:

SELECT artworks.title, artists.name
FROM artworks
JOIN artists
ON artworks.artist_id = artists.id;

Wir geben eine Tabelle in der Anweisung FROM und eine weitere Tabelle in der Anweisung JOIN an. Wir verwenden auch das Schlüsselwort ON, um der Datenbank mitzuteilen, welche Spaltenwerte abgeglichen werden sollen, um die Tabellen zu verbinden.

Hier ist das Ergebnis:

titlename
The Mona LisaLeonardo da Vinci
Jean-Baptiste Poquelin (Moliere)Jean-Jacques Caffieri
The Wedding Feast at CanaPaolo Veronese
The LacemakerJohannes Vermeer
A RiverJean-Jacques Caffieri

Um die verschiedenen Arten von Verknüpfungen in SQL zu verstehen, lesen Sie diesen einführenden Leitfaden. Schauen Sie sich auch unsere 10 besten Interviewfragen zu SQL-Joins an. Sie eignen sich hervorragend zum Üben (auch wenn Sie sich nicht auf ein Vorstellungsgespräch vorbereiten).

WHERE

Die WHERE Klausel wird verwendet, um die Ausgabe einer Abfrage zu filtern . Angenommen, Ihre nächste Aufgabe besteht darin, die Titel der im Museum vorhandenen Gemälde und deren Entstehungsjahr aufzulisten. Sie möchten nicht, dass Informationen über Skulpturen und andere Arten von Kunstwerken in der Ergebnismenge enthalten sind.

Hier ist die zu verwendende SQL-Abfrage:

SELECT title, year
FROM artworks
WHERE type = ‘painting’;

Mit der Anweisung WHERE geben Sie einfach an, dass der Typ des Kunstwerks "Gemälde" sein soll. So erhalten Sie dieses Ergebnis:

titleyear
The Mona Lisa1506
The Wedding Feast at Cana1563
The Lacemaker1670

Weitere Einzelheiten über die WHERE-Klausel finden Sie in diesem Artikel.

ORDER BY

Oft möchte man die Abfrageergebnisse in einer bestimmten Reihenfolge anzeigen lassen. In SQL können Sie die Ergebnismenge mit der ORDER BY -Klausel sortieren.

Lassen Sie uns zum Beispiel das Ergebnis der letzten SQL-Abfrage nach dem Jahr der Erstellung sortieren, beginnend mit den neuesten Werken. Dazu geben wir einfach die Spalte Jahr in der Klausel ORDER BY an und fügen das Schlüsselwort DESC hinzu, um die Ergebnisse in absteigender Reihenfolge zu sortieren:

SELECT title, year
FROM artworks
WHERE type = ‘painting’
ORDER BY year DESC;
titleyear
The Lacemaker1670
The Wedding Feast at Cana1563
The Mona Lisa1506

Erfahren Sie mehr über das Ordnen von Zeilen nach einer oder mehreren Spalten in diesem einführenden Artikel. Weitere Anwendungsfälle für ORDER BY finden Sie in diesem ausführlichen Leitfaden über die Anweisung ORDER BY.

GRUPPE BY

Standardmäßig sind alle Ergebnisse, die wir erhalten, auf Datensätze ausgerichtet. In manchen Fällen möchten wir jedoch Metriken für Gruppen von Datensätzen berechnen (z. B. die Anzahl der Gemälde von jedem Künstler, das älteste Meisterwerk für jeden Kunstwerkstyp usw.). An dieser Stelle kommt die GROUP BY Klausel ins Spiel.

Mit GROUP BY können Sie Gruppen von Datensätzen (Zeilen) erstellen und Metriken für jede Gruppe berechnen. Sehen wir uns zum Beispiel das Erstellungsjahr für das älteste Meisterwerk jedes Kunstwerkstyps an:

SELECT type, MIN (year) AS oldest_work_from
FROM artworks
GROUP BY type;

Hier berechnen wir das früheste (minimale) Jahr für jede Art von Kunstwerk. Wir erhalten die folgende Ausgabe:

typeoldest_work_from
painting1506
sculpture1759

Erfahren Sie mehr über die Syntax von GROUP BY in diesem Artikel. Außerdem finden Sie hier weitere Beispiele mit GROUP BY.

HAVING

Wie die Klausel WHERE filtert auch HAVING die Ausgabe einer Abfrage. Allerdings filtert WHERE auf der Ebene der Datensätze, während HAVING auf der Gruppenebene filtert. Lesen Sie hier mehr über den Unterschied zwischen HAVING und WHERE.

Nehmen wir an, dass wir die Kunstwerkstypen erhalten möchten, bei denen das älteste Werk vor 1600 datiert ist. Da dies die Bedingung für einen aggregierten Wert ist, fügen wir sie in die HAVING-Klausel ein:

SELECT type, MIN (year) AS oldest_work_from
FROM artworks
GROUP BY type
HAVING MIN (year) < 1600;

In unserem Fall erfüllen nur Gemälde diese Bedingung:

typeoldest_work_from
painting1506

In diesem Leitfaden erfahren Sie mehr darüber, wann und wie Sie HAVING verwenden .

SQL-Abfrage-Syntax: Zusammenfassung

Nachdem wir uns die grundlegenden Elemente einer SQL-Abfrage angesehen haben, ist Ihnen wahrscheinlich klar, dass die Frage, wo und wie diese Elemente zu verwenden sind, normalerweise einfach zu beantworten ist. Es gibt jedoch viele Details, die in diesem Überblick nicht behandelt wurden. Um Ihnen zu helfen, Ihr Wissen über die SQL-Syntax zu überprüfen, haben wir ein zweiseitiges SQL für Anfänger Cheat Sheet vorbereitet. Laden Sie es herunter, drucken Sie es aus und kleben Sie es an Ihren Schreibtisch.

Lassen Sie uns nun versuchen, alle grundlegenden Elemente in einer SQL-Abfrage zu verwenden. Wir wollen die Namen der Künstler zusammen mit dem Jahr ihres ältesten Werks, das wir im Museum haben, abrufen. Außerdem wollen wir (1) die Mona Lisa ausschließen, da sie zu berühmt ist; (2) nur Künstler einbeziehen, deren ältestes Werk vor 1700 geschaffen wurde, und (3) die Ausgabe nach dem Jahr des ältesten Werks ordnen, beginnend mit dem frühesten.

Hier ist die zu verwendende Abfrage:

query

Die Ausgabe dieser Abfrage ist:

nameoldest_work_from
Paolo Veronese1563
Johannes Vermeer1670

Konnten Sie die Logik dieser SQL-Abfrage nachvollziehen? Wenn Sie sich im Umgang mit den verschiedenen Abfrageelementen nicht sicher fühlen, sollten Sie sich unseren SQL für Anfänger Kurs. In 129 interaktiven Übungen werden die grundlegenden Anwendungen von SQL behandelt, darunter die Erstellung grundlegender Berichte, die Arbeit mit mehreren Tabellen, die Erstellung von Berichten mit Aggregatfunktionen und das Schreiben von Unterabfragen und komplexen Anweisungen.

Möchten Sie noch mehr üben? LearnSQL.de hat ein SQL-Übungssatz mit 88 interaktiven Übungen, um Ihre SQL-Grundkenntnisse zu testen.

Vielen Dank fürs Lesen und viel Spaß beim Lernen!