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 LektionVortragDatenbanken: Eine kleine Einführung
2 LektionenSelbstudiumEinführung in SQL der Universität Leipzig
OptionalSelbstudiumEinführung in SQL der Universität Zürich
Umfassende Einführung in SQL (WikiBooks)
1 LektionVortragZusammenfassung anhand von Beispielen zu LOTS
3 LektionenÜbungOnline Übung mit LOTS und SQL Zoo
OptionalÜbungÜbungen auf dem Programming Wiki
1 LektionÜbungPapierübung: Aufgaben zu Projekt-Auswertung

Downloads

Datenbanken: Eine kleine Einführung - Powerpoint [924 KB] Datenbanken: Eine kleine Einführung - PDF [4 MB] Datenbanken: Eine kleine EinführungPowerpoint [924 KB] · PDF [4 MB]
Zusammenfassung anhand von Beispielen zu LOTS - Powerpoint [1019 KB] Zusammenfassung anhand von Beispielen zu LOTS - PDF [2 MB] Zusammenfassung anhand von Beispielen zu LOTSPowerpoint [1019 KB] · PDF [2 MB]
 
Online Übung mit LOTS: Aufgaben - Word [53 KB] Online Übung mit LOTS: Aufgaben - PDF [41 KB] Online Übung mit LOTS: AufgabenWord [53 KB] · PDF [41 KB]
Online Übung mit LOTS: Musterlösungen - Word [57 KB] Online Übung mit LOTS: Musterlösungen - PDF [43 KB] Online Übung mit LOTS: MusterlösungenWord [57 KB] · PDF [43 KB]
 
Papierübung: Aufgaben zu Projekt-Auswertung (gleiche Aufgaben wie für Excel) - Word [97 KB] Papierübung: Aufgaben zu Projekt-Auswertung (gleiche Aufgaben wie für Excel) - PDF [39 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] Papierübung: Musterlösungen zu Projekt-Auswertung (gleiche Aufgaben wie für Excel) - PDF [49 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)