Abfragen – Tipps und Tricks Buch S102ff (Informatik I, Oldenbourg-Verlag) Nach einer Vorlage von Dieter Bergmann Wie kann man herausfinden, welche Kunden ein Buch gekauft haben? Mehrere Bedingungen können mit Hilfe der logischen Operatoren UND, ODER und NICHT verknüpft werden. In SQL: AND, OR und NOT SELECT Kunde.Name FROM Kunde, Kauf, Artikel WHERE Kunde.KundenNr=Kauf.KundenNr AND Kauf.ArtikelNr=Artikel.ArtikelNr AND Artikel.Sparte=`Buch´; Wie kann man herausfinden, wie viele Artikel ein Kunde gekauft hat? Die Funktionen COUNT(<Spalte>), AVG(>Spalte>), MAX(<Spalte>), MIN(<Spalte>) SUM(<Spalte>) heißen Aggregatsfunktionen. Sie können nach einen SELECT-Abfrage stehen und liefern ebenfalls eine Tabelle. SELECT Aggregatsfunktion Erweiterung: Mit GROUP BY können die Datensätze zusammengefasst werden, bei denen Aggregatsfunktionen gleiche Ergebnisse geliefert haben. Gruppierungsangabe SELECT Gruppierung und eventuell Bearbeitung von Aggregatsfunktion Erweiterung: Mit HAVING <Bedingung> können aus der Ergebnisliste nochmals Datensätze ausgewählt werden, die bestimmte Bedingungen erfüllen. Gruppierungsangabe Bedingung SELECT Gruppierung … HAVING Erweiterung: Werte, die für eine Bedingung benötigt werden, können mit Hilfe einer weiteren Abfrage ermittelt werden. Dies nennt man eine Unterabfrage. Beispiel: SELECT Heim, MAX(Tore_H) FROM Spiele WHERE Tore_H=(SELECT MAX(Tore_H) FROM Spiele); Problem: Die Spaltenüberschriften in der Ergebnistabelle ergeben nicht immer eine treffende Beschreibung Mit AS <Name> können Spalten neu benannt werden. SELECT irgendwas AS wichtig FROM … Zusammenfassung Eine Abfrage kann folgendes Aussehen haben, wobei nicht benötigte Teile auch fehlen können: SELECT <Tabellenliste> FROM <Spaltenliste> WHERE <Bedingung> ORDER BY <Spaltenliste> GROUP BY <Spalte> HAVING <Bedingung>; Ergebnisse von Unterabfragen können im WHERE-Teil zur Formulierung von Bedingungen verwendet werden. Ergebnisse von Abfragen können als Mengen interpretiert werden, der Enthält-Operator ist IN. Zusammenfassung Mit den Aggregatsfunktionen COUNT, AVG, SUM, MAX und MIN lassen sich neue Informationen gewinnen. Spalten in Ergebnistabellen können mit AS <Name> beliebige Namen zugewiesen werden. Aufgaben Buch (Informatik I, Oldenbourg-Verlag) S107/1-S109/10