Zurück zur Artikelliste Artikel
8 Leseminuten

Was sind die grundlegenden SQL-Abfragen?

Mit einigen grundlegenden SQL-Abfragen können Sie auf die Daten in einer Datenbank zugreifen. In diesem Artikel gehen wir auf die grundlegenden SQL-Abfragen ein, die jeder Einsteiger kennen sollte.

Datenbanken gibt es überall, und sie enthalten verschiedene Arten von Daten. Fast alle von ihnen unterstützen SQL, eine Sprache, mit der Sie die Daten in einer Datenbank lesen und bearbeiten können. In diesem Artikel zeige ich Ihnen die grundlegenden SQL-Abfragen, mit denen Sie viele alltägliche Datenaufgaben erledigen können.

Der beste Weg, SQL zu lernen, ist unser interaktiver SQL für Anfänger Kurs. Er enthält über 120 Übungen, die mit sehr einfachen Beispielen beginnen und dann zu Konzepten wie JOINs und WHERE Bedingungen übergehen. Mehr über SQL erfahren Sie in unserem Artikel Was ist SQL? Dort erfahren Sie auch, warum SQL nicht schwer zu lernen ist.

Was ist eine SQL-Abfrage?

Eine Datenbank ist ein Computerprogramm, das große Mengen an Daten speichert. Datenbanken sind in der Regel in Tabellen organisiert. Jede Tabelle speichert Daten zu einer Sache, einer Person, einem Ort oder einem anderen Objekt (z. B. zu Kunden, Produkten, Terminen oder Mitarbeitern). Sobald Sie die Daten in einer Datenbank gespeichert haben, können Sie mit diesen Daten Berichte erstellen - zum Beispiel eine Liste der Kunden, die im letzten Monat Transaktionen getätigt haben.

Sie erstellen Datenbankberichte mit Hilfe von SQL, der Structured Query Language. SQL ist die Programmiersprache, mit der man mit Datenbanken kommuniziert. Eine SQL-Abfrage ist ein Ausdruck, ähnlich wie ein englischer Satz, der die Datenmenge definiert, die aus der Datenbank abgerufen werden soll. Sie können sich eine SQL-Abfrage als eine Frage vorstellen, die Sie an die Datenbank senden; danach erwarten Sie, dass die Datenbank auf die Frage antwortet, indem sie die Daten zurückschickt.

In diesem Artikel werden wir Ihnen die grundlegendsten SQL-Abfragen vorstellen. Diese können zur Durchführung gängiger Datenaufgaben verwendet werden. Sie können diese SQL-Abfragen leicht abändern und für Ihre eigene Datenbank verwenden.

Bevor wir mit den Abfragen beginnen, sehen wir uns zunächst die Daten an, die wir verwenden werden.

Unsere Beispieltabelle

Die Abfragen basieren auf einer Tabelle namens products. In dieser Tabelle werden alle Produktinformationen für ein E-Commerce-Unternehmen gespeichert. Die Spalten der Tabelle sind in der Abbildung unten zu sehen:

prod_codenameprod_ familycostpricestockproviderstatus
1001Cell Phone A200Phones50085035Trixavailable
1002Cell Phone A310Phones740120050Trixavailable
1003HeadsetAudio2450150Zeysold out
2001Portable SpeakerAudio14023050Zeyavailable
2002Sound Box Hulk1Audio2203400Zeydiscontinued
2003Sound Box Hulk2Audio32053012Zeyavailable
2004HeadsetAudio325885Zeyavailable
3001Tablet X8 8 inchTablets15530035MiniSOftavailable
3002Tablet X12 12 inchTablets21543040MiniSoftavailable

Die Namen der Spalten sind selbsterklärend. Die vielleicht wichtigste Spalte ist prod_code. Sie speichert einen numerischen Code, der jedes Produkt identifiziert (d. h. die ID jedes Produkts). Außerdem ist zu beachten, dass die Statusspalte nur vier gültige Werte haben kann: "verfügbar", "ausverkauft", "bald eintreffend" oder "nicht mehr lieferbar".

Da wir nun wissen, welche Daten wir erwarten können, sollten wir mit dem Schreiben einiger SQL-Abfragen beginnen!

Grundlegende SQL-Abfragen

Abfrage 1: Auswählen aller Daten aus einer Tabelle

Die erste Abfrage ist eine einfache Methode, um alle Informationen aus einer Datenbanktabelle abzurufen. Die folgende Abfrage zeigt alle Datensätze in allen product Tabellenspalten:

SELECT * 
FROM products

Die Anweisung SELECT verwendet das Symbol *, um "alle Spalten" darzustellen. Danach gibt die FROM Klausel die Tabelle an, die gelesen werden soll. Wie Sie unten sehen, ist das Ergebnis die komplette Tabelle: alle Datensätze und alle Spalten. Mit dieser Abfrage können Sie einen Blick in eine Tabelle werfen, um herauszufinden, welche Art von Daten sich in der Tabelle befindet.

prod_codenameprod_ familycostpricestockproviderstatus
1001Cell Phone A200Phones50085035Trixavailable
1002Cell Phone A310Phones740120050Trixavailable
1003HeadsetAudio2450150Zeysold out
2001Portable SpeakerAudio14023050Zeyavailable
2002Sound Box Hulk1Audio2203400Zeydiscontinued
2003Sound Box Hulk2Audio32053012Zeyavailable
2004HeadsetAudio325885Zeyavailable
3001Tablet X8 8 inchTablets15530035MiniSOftavailable
3002Tablet X12 12 inchTablets215430140MiniSoftavailable

Abfrage 2: Auswählen bestimmter Spalten aus einer Tabelle

Sie können auch nur einige Spalten aus einer Tabelle anzeigen. Nehmen wir an, wir wollen eine Preisliste mit den Spalten name, provider, prod_family und price. Die Abfrage ist sehr einfach:

SELECT 
  name, 
  provider, 
  prod_family, 
  price 
FROM products

Wir geben die Spalten an, die wir aus der Tabelle extrahieren wollen: name, provider, prod_family und price. In der zweiten Zeile der Abfrage verwenden wir die Klausel FROM, um die zu lesende Tabelle anzugeben. Das Ergebnis ist:

nameproviderprod_familyprice
Cell Phone A200TrixPhones850
Cell Phone A310TrixPhones1200
HeadsetZeyAudio50
Portable SpeakerZeyAudio230
Sound Box Hulk1ZeyAudio340
Sound Box Hulk2ZeyAudio530
HeadsetZeyAudio58
Tablet X8 8 inchMiniSOftTablets300
Tablet X12 12 inchMiniSoftTablets430

Abfrage 3: Durchführen einfacher Berechnungen

Innerhalb einer SQL-Abfrage können wir Berechnungen durchführen. So können wir einen berechneten Wert erhalten, der von anderen in der Datenbanktabelle gespeicherten Werten abgeleitet ist.

Berechnen wir den Betrag für die Rentabilität der Produkte anhand der Spalten price und cost und zeigen wir den Betrag neben dem Produktnamen an. Hier ist die Abfrage, die wir verwenden würden:

SELECT 
  name,
  price - cost AS rentability
FROM products

Die zweite Zeile der Abfrage enthält den arithmetischen Ausdruck price - cost. Das Schlüsselwort AS ermöglicht es, dem Ergebnis dieses arithmetischen Ausdrucks den Namen rentability zuzuweisen. Die neue Information wird als Spalte im Abfrageergebnis angezeigt:

namerentability
Cell Phone A200350
Cell Phone A310460
Headset26
Portable Speaker90
Sound Box Hulk1120
Sound Box Hulk2210
Headset26
Tablet X8 8 inch145
Tablet X12 12 inch215

Abfrage 4: Daten filtern

Normalerweise möchte man nicht alle Daten in einer Datenbank sehen. Sie möchten nur die Zeilen sehen, die bestimmten Kriterien entsprechen: Produkte aus einer Produktfamilie oder mit einem Preis unter einem bestimmten Schwellenwert. In SQL wird dies als Filtern der Daten bezeichnet.

Die WHERE-Klausel filtert die gewünschten Daten aus den übrigen Daten der Tabelle. Sie extrahiert Datensätze, die bestimmten Bedingungen entsprechen. Nehmen wir zum Beispiel an, dass wir eine Preisliste für Produkte aus der Familie "Audio" benötigen. Wir können die folgende Abfrage verwenden, um das Ergebnis zu erhalten:

SELECT 
  name, 
  provider, 
  prod_family, 
  price 
FROM products
WHERE prod_family = ‘Audio’

Die Klausel WHERE gibt an, dass wir nur die Datensätze erhalten möchten, bei denen die Bedingung prod_family = ‘Audio’ TRUE lautet. Andere Datensätze (die zu den Familien "Phones" oder "Tablets" gehören) werden nicht in das Ergebnis aufgenommen. Mit anderen Worten, wir filtern die Datensätze aus der Tabelle products.

nameproviderprod_ familyprice
HeadsetZeyAudio50
Sound Box Hulk1ZeyAudio340
Portable SpeakerZeyAudio230
Sound Box Hulk2ZeyAudio530
HeadsetZeyAudio58

Abfrage 5: Sortieren von Daten im Abfrageergebnis

Oft möchte man die Abfrageergebnisse in einer bestimmten Reihenfolge sehen, z. B. die Produkte vom billigsten zum teuersten oder die Produktnamen in alphabetischer Reihenfolge. Die Klausel ORDER BY wird verwendet, um festzulegen, wie die Datensätze im Abfrageergebnis geordnet werden sollen.

Nehmen wir an, wir wollen die Produkte aus unserer vorherigen Abfrage nach Namen ordnen. Beachten Sie, wie wir ORDER BY in dieser Abfrage verwenden:

SELECT 	
  name, 
  provider, 
  prod_family, 
  price 
FROM products
WHERE prod_family = ‘Audio’
ORDER BY name

Wir können die gleichen Datensätze in alphabetischer Reihenfolge nach Produktnamen sehen:

nameproviderprod_ familyprice
HeadsetZeyAudio50
HeadsetZeyAudio58
Portable SpeakerZeyAudio230
Sound Box Hulk1ZeyAudio340
Sound Box Hulk2ZeyAudio530

Kombinieren Sie alles, um Geschäftsprobleme zu lösen

Sie können alle in diesem Artikel vorgestellten SQL-Funktionen in einer Abfrage kombinieren. Durch diese Kombination von SQL-Funktionen entsteht eine komplexere Abfrage, mit der sich echte Geschäftsprobleme lösen lassen.

Das Ergebnis der letzten Abfrage im vorherigen Abschnitt ähnelt einer Preisliste für Produkte der Audio-Familie. Es zeigt jedoch Produkte an, die nicht mehr erhältlich oder ausverkauft sind. In der nächsten Abfrage fügen wir eine zweite logische Bedingung in die WHERE Klausel ein, um nur Produkte einzuschließen, die derzeit verfügbar sind:

SELECT 	
  name, 
  provider, 
  prod_family, 
  price 
FROM products
WHERE prod_family = ’Audio’  
  AND status = ’available’
ORDER BY name

Die Bedingungen in der Klausel WHERE sind mit dem logischen Konnektor AND verknüpft; das Ergebnis enthält also nur Datensätze, bei denen beide logischen Bedingungen WAHR sind . Wir können dies in den folgenden Ergebnissen sehen:

nameproviderprod_ familyprice
HeadsetZeyAudio50
HeadsetZeyAudio58
Portable SpeakerZeyAudio230
Sound Box Hulk2ZeyAudio530

In der nächsten Beispielabfrage werden wir versuchen, alle in diesem Artikel behandelten SQL-Klauseln zu kombinieren. Nehmen wir an, wir planen eine Marketingkampagne und müssen zwei Produkte auswählen, die wir bewerben wollen. Wir wollen Produkte mit einer Rentabilität von mehr als 200 $ und mit einem Bestand von mehr als 25 Einheiten. Wir werden den Bericht auch nach einer Metrik namens "potenzielle Rentabilität" ordnen, die mit der folgenden Formel berechnet wird: (price - cost) * stock. Hier ist die Abfrage:

SELECT 
  name, 
  price - cost AS rentability,
  stock, 
  (price - cost) * stock AS potential_rentability
FROM products
WHERE price - cost > 200  
AND stock > 25
ORDER BY (price - cost) * stock DESC;

Die vorherige Abfrage berechnet zwei Metriken. Die eine Kennzahl ist rentability und wird mit der Formel price - cost berechnet. Die andere Metrik ist potential_rentability, die mit der Formel (price - cost) * stock berechnet wird. In der Klausel WHERE gibt die Abfrage zwei Bedingungen an: Die zurückzugebenden Datensätze müssen eine rentability größer als 200 und eine stock größer als 25 Einheiten haben. Schließlich wird das Ergebnis der Abfrage nach der Metrik potential_rentability in absteigender Reihenfolge (vom größten zum kleinsten Wert) geordnet. Unten sehen Sie das Ergebnis:

namerentabilitystockpotential rentability
Tablet X12 12 inch21514030100
Cell Phone A3104605023000
Cell Phone A2003503512250

Lernen Sie weiter grundlegende SQL-Abfragen!

In diesem Artikel haben wir uns mit den grundlegenden SQL-Abfragen beschäftigt, die zur Durchführung einfacher Datenaufgaben verwendet werden können. SQL bietet jedoch noch viele weitere Klauseln und Techniken, mit denen Sie weitere Operationen mit Daten durchführen können.

Unser interaktiver SQL für Anfänger Kurs ist der beste Weg, um SQL-Grundlagen zu beherrschen. Er enthält über 120 Übungen zu grundlegenden SQL-Abfragen (wie die in diesem Artikel) und anderen SQL-Konstruktionen, mit denen Sie Daten aus mehreren Tabellen kombinieren und verschiedene Statistiken berechnen können.

Wenn Sie die Grundlagen von SQL bereits kennen, ist unser SQL Basic Cheat Sheet eine praktische Referenzquelle. Es gibt Ihnen eine kurze Erinnerung an die SQL-Syntax mit Beispielabfragen.