Einzelne Tabellen relationaler Datenbanken abfragen mit SQL
Verfasst von Raimond Reichert
Inhalt
Reale Datenbanken bestehen typischerweise aus einer Vielzahl von mit einander verknüpften Tabellen. Wir betrachten zunächst Abfragen auf einzelnen Tabellen:
- Auswahl von Spalten (Projektion)
- Auswahl von Zeilen mittels Boole'schen Ausdrücken (Selektion)
- Einzelne Kriterien: Vergleich von Feldinhalt mit Konstante oder anderem Feldinhalt (Vergleichsoperatoren)
- Verknüpfung von Kriterien mit AND, OR, NOT
- Bearbeitung der ausgewählten Spalten und Zeilen: sortieren mit ORDER BY, Duplikate elimininieren mit DISTINCT, Einschränkung der Anzahl Resultate mit LIMIT (Ausgabebearbeitung)
- Berechnungen auf den ausgewählten Spalten und Zeilen: Summe berechnen, Anzahl bestimmen, Durchschnitt ermitteln, ... (Aggregatsfunktionen SUM, COUNT, AVG, MIN, MAX)
- Zeilen für Berechnungen gruppieren und auf diesen Gruppen Berechnungen ausführen (Gruppenbildung mit GROUP BY, HAVING)
- Unterabfragen (geschachtelte Abfragen)
Ziel
Mit Hilfe der Structured Query Language (SQL) Abfragen auf einzelnen Tabellen durchführen. Das folgende, etwas konstruierte Beispiel zur Datenbank LOTS (siehe Links unten) zeigt einige der Konzepte auf:
SELECT b.jahr, COUNT(b.buchid) AS anzahl_buecher, AVG(b.preis) AS durchschnittspreis FROM buch b WHERE ((b.titel LIKE '%Java%') OR (b.titel LIKE '%C#')) AND (b.auflage IS NOT NULL) GROUP BY b.jahr HAVING COUNT(b.buchid) > 5 ORDER BY AVG(b.preis) DESC LIMIT 1
Welche Frage beantwortet diese Anfrage?
Ablauf
1 Lektion | Vortrag | Datenbanken: Eine kleine Einführung |
2 Lektionen | Selbstudium | Einführung in SQL der Universität Leipzig |
Optional | Selbstudium | Einführung in SQL der Universität Zürich Umfassende Einführung in SQL (WikiBooks) |
1 Lektion | Vortrag | Zusammenfassung anhand von Beispielen zu LOTS |
3 Lektionen | Übung | Online Übung mit LOTS und SQL Zoo |
Optional | Übung | Übungen auf dem Programming Wiki |
1 Lektion | Übung | Papierübung: Aufgaben zu Projekt-Auswertung |
Downloads
Datenbanken: Eine kleine Einführung | Powerpoint [924 KB] · PDF [4 MB] | |
Zusammenfassung anhand von Beispielen zu LOTS | Powerpoint [1019 KB] · PDF [2 MB] | |
Online Übung mit LOTS: Aufgaben | Word [53 KB] · PDF [41 KB] | |
Online Übung mit LOTS: Musterlösungen | Word [57 KB] · PDF [43 KB] | |
Papierübung: Aufgaben zu Projekt-Auswertung (gleiche Aufgaben wie für Excel) | Word [97 KB] · PDF [39 KB] | |
Papierübung: Musterlösungen zu Projekt-Auswertung (gleiche Aufgaben wie für Excel) | Word [119 KB] · PDF [49 KB] |
Links
Übungen von SQL Zoo: Alle unten angegebenen Aufgaben | |
Übersicht alle Aufgaben | |
Erste Aufgaben zu SELECT | |
Weitere Aufgaben zu SELECT | |
Und noch mehr Aufgaben zu SELECT | |
Aufgaben zu SELECT im SELECT | |
Aufgaben zu SUM und COUNT | |
Weitere Quellen (optional) | |
SQL Tutorial von W3Schools (English) | |
Übungen auf dem Programming Wiki (optional) | |
Spielwiese zu Auswertungen von Arbeit für verschiedene Projekte mit GROUP BY, SUM, ... | |
Spielwiese zu Auswertungen einer Tabelle mit Geschwindigkeitsmessungen mit GROUP BY, SUM, ... | |
Spielwiese und Aufgaben zu einer Tabelle mit Kinderbüchern | |
Excel-Mexcel Aufgaben zu Autofilter mit SQL gelöst | |
Umfassende Einführung in SQL (WikiBooks), für die Arbeit mit einzelnen Tabellen sind folgende Kapitel relevant: | |
Inhaltsverzeichnis | |
Relationale Datenbanken | |
Beispieldatenbank | |
DML (1) – Daten abfragen | |
Datentypen | |
Spaltenfunktionen | |
Ausführliche SELECT-Struktur | |
WHERE-Klausel im Detail | |
Weitere Links | |
Zusammenfassung / Überblick SQL (Wikipedia) |