Zum Inhalt springen
YellowBlue
IT-Grundlagen4 Min. Lesezeit

SQL-Grundlagen: Daten mit SELECT abfragen

Kurzantwort

SELECT ist der wichtigste SQL-Befehl: Er liest Daten aus einer Tabelle. Mit SELECT wählst du die Spalten, mit FROM die Tabelle, mit WHERE filterst du Zeilen nach Bedingungen, mit ORDER BY sortierst du das Ergebnis und mit GROUP BY fasst du Zeilen für Auswertungen zusammen. Diese Bausteine decken den Großteil aller Abfragen ab.

Teil des Lernpfads Datenbanken und SQL · Schritt 4 von 9

Eine Datenbank nützt wenig, wenn man ihre Daten nicht gezielt herausbekommt. Genau dafür gibt es SQL – und der mit Abstand wichtigste Befehl ist SELECT. Wer ihn beherrscht, kann fast jede Frage an die Daten stellen.

Der Aufbau einer SELECT-Abfrage

Eine Abfrage liest sich fast wie ein Satz: „Wähle diese Spalten aus jener Tabelle, wo eine Bedingung gilt, sortiert nach …".

SELECT name, lehrjahr
FROM azubis
WHERE lehrjahr = 2
ORDER BY name;

Filtern mit WHERE

WHERE schränkt die Zeilen ein. Bedingungen lassen sich mit Vergleichs- und Logikoperatoren kombinieren:

OperatorBedeutungBeispiel
= <>gleich / ungleichberuf = 'FIAE'
< > <= >=Vergleichlehrjahr >= 2
AND ORVerknüpfunglehrjahr = 3 AND beruf = 'FISI'
LIKETextmustername LIKE 'A%' (beginnt mit A)
INListeberuf IN ('FIAE','FISI')
IS NULLleerer Wertnote IS NULL

Sortieren und gruppieren

ORDER BY spalte ASC sortiert aufsteigend, DESC absteigend. GROUP BY fasst Zeilen mit gleichem Wert zusammen und wird mit Aggregatfunktionen ausgewertet:

SELECT beruf, COUNT(*) AS anzahl
FROM azubis
GROUP BY beruf;

Die wichtigsten Aggregatfunktionen: COUNT, SUM, AVG, MIN, MAX.

Warum SELECT so mächtig ist

Selbstkontrolle

Selbstkontrolle

Du willst nur Gruppen anzeigen, die mehr als fünf Einträge haben. Welche Klausel nutzt du?

Häufige Fragen

Was ist der Unterschied zwischen WHERE und HAVING?

WHERE wird vor der Gruppierung ausgewertet und filtert einzelne Zeilen, kann also nicht auf Aggregatfunktionen zugreifen. HAVING wird nach dem GROUP BY ausgewertet und filtert die entstandenen Gruppen, etwa nach ihrer Anzahl oder Summe. In einer Abfrage können beide gemeinsam vorkommen.

Warum sollte man nicht immer SELECT * nehmen?

SELECT * holt alle Spalten, auch die, die du gar nicht brauchst. Das überträgt unnötig viele Daten, macht Abfragen langsamer und den Code unklarer, weil nicht ersichtlich ist, welche Felder wirklich verwendet werden. Zum schnellen Ausprobieren ist es praktisch, in produktivem Code benennt man die Spalten aber besser explizit.

Wie prüfe ich auf leere Werte?

Mit IS NULL beziehungsweise IS NOT NULL. NULL bedeutet „kein Wert" und ist nicht dasselbe wie 0 oder ein leerer Text. Ein Vergleich wie spalte = NULL liefert deshalb nie ein sinnvolles Ergebnis; korrekt ist WHERE spalte IS NULL.

Ist SQL bei jeder Datenbank gleich?

Der Kern – SELECT, WHERE, JOIN, GROUP BY – ist genormt und funktioniert überall sehr ähnlich. Bei Detailfunktionen, Datentypen oder String-Funktionen unterscheiden sich die Systeme (MySQL, PostgreSQL, SQL Server, Oracle) aber im Detail. Für die Ausbildung reicht der genormte Standard-Kern völlig aus.

Weiterlesen: Normalisierung: Datenbanken ohne Redundanz · ER-Modell erklärt: Entity-Relationship-Modell · Datenanalyse: von Rohdaten zur Erkenntnis

Das Wichtigste in Kürze

  • SELECT liest Daten; Reihenfolge: SELECT → FROM → WHERE → GROUP BY → ORDER BY.
  • WHERE filtert Zeilen; Operatoren wie =, LIKE, IN, IS NULL.
  • ORDER BY sortiert (ASC/DESC), GROUP BY gruppiert für Auswertungen.
  • Aggregatfunktionen: COUNT, SUM, AVG, MIN, MAX.
  • WHERE filtert Zeilen, HAVING filtert Gruppen; NULL nur mit IS NULL prüfen.

Schlagwörter

Verwandte Beiträge

IT-Grundlagen4 Min. Lesezeit

DDL und DML: SQL-Befehle im Überblick

DDL, DML, DQL, DCL und TCL im Überblick: Welche SQL-Befehle zu welcher Gruppe gehören, mit Beispielen und Prüfungstipps zu DELETE, TRUNCATE und DROP.

IT-Grundlagen3 Min. Lesezeit

Transaktionen und das ACID-Prinzip

Warum Datenbanken zusammengehörige Schritte zu Transaktionen bündeln und was die vier ACID-Eigenschaften bedeuten – erklärt am Beispiel einer Überweisung.

IT-Grundlagen4 Min. Lesezeit

SQL-JOINs erklärt: INNER JOIN und LEFT JOIN

Was ein JOIN in SQL ist, wie INNER JOIN und LEFT JOIN Tabellen über den Fremdschlüssel verbinden und wann welcher Join-Typ das richtige Ergebnis liefert.