SQL-Abfragen werden verwendet, um in der Datenbank nach bestimmten Informationen zu suchen. Eine SQL-Abfrage liefert eine Tabelle mit Datensätzen zurück.

Aufbau

Eine SQL-Abfrage beginnt immer mit dem Schlüsselwort SELECT. Danach werden die Spalten aufgelistet, die ausgewählt werden sollen; alternativ kann der Stern * angegeben werden, um alle Spalten auszuwählen. Danach wird ein FROM benötigt, gefolgt von einer oder mehreren Tabellen, in denen sich die Daten befinden:

SELECT [auszugebende Spalten]
FROM [Tabellenliste]

Mit WHERE kann man eine Bedingung hinzufügen, die alle Datensätze erfüllen müssen.

Beispiel

Betrachten wir folgende Tabelle:

Buchtabelle

SELECT Titel, Erscheinungsjahr
FROM Buch
WHERE Autor = "Hans C. Andersen"

Bei dieser Abfrage werden Titel und Erscheinungsjahr aller Bücher von Hans Christian Andersen angezeigt, die in der Datenbank eingetragen sind.

SELECT *
FROM Buch
WHERE Autor <> "Hans C. Andersen"

Bei dieser Abfrage werden alle Eigenschaften aller Bücher außer denen von Hans Christian Andersen angezeigt, die in der Datenbank eingetragen sind. Das <> bedeutet ungleich ≠.

Abfragen über mehrere Tabellen

Eine Abfrage an mehrere Tabellen liefert das Kartesische Produkt der Tabellen. Man sollte dies nur machen, wenn die Tabellen in einer Relation zueinander stehen. In diesem Fall muss man einer WHERE-Bedingung oder einer JOIN-Operation dafür sorgen, dass nur zusammengehörige Datensätze vereint werden.

  • Beispiel ist in Arbeit.

Erweiterte Abfrage

Mit Aggregatfunktionen wie z.B. COUNT (Anzahl der Datensätze), AVG (Mittelwert), SUM (Summe aller Werte), MIN (kleinster Wert) oder MAX (größter Wert) lassen sich aus den Datensätzen neue Informationen gewinnen. Beispiel:

SELECT MAX(Erscheinungsjahr)
FROM Buch
WHERE Autor = "Hans C. Andersen"

Dies gibt das Jahr zurück, in dem das neueste Buch von Hans Christian Andersen erschienen ist (vorausgesetzt, das Erscheinungsjahr ist als Zahl gespeichert).

Mit GROUP BY lässt sich die Ergebnistabelle nach bestimmten Spalten gruppieren. Eine Bedingung wird mit HAVING festgelegt.

Beispiel

SELECT COUNT(*)
FROM Buch
GROUP BY Autor
HAVING Erscheinungsjahr >= 1900

Dies gibt die Anzahl der Autoren zurück, die seit 1900 ein Buch geschrieben haben, das sich in unserer Datenbank befindet.

Kommentieren Kommentare