Informatik

Rechnen in Abfragen

In der SELECT-Liste dürfen nicht nur Spaltennamen stehen, sondern beliebige Ausdrücke. Damit lassen sich Werte berechnen, die so gar nicht in der Datenbank stehen.

Berechnete Spalten

Eine berechnete Spalte braucht praktisch immer einen Alias – sonst heißt sie im Ergebnis 2026 - gruendungsjahr, was sich weder gut liest noch weiterverwenden lässt.

Nach einem Alias darf ORDER BY sortieren. Im WHERE verlässt man sich besser nicht darauf: Der SQL-Standard erlaubt es dort nicht, und die meisten Datenbanksysteme lehnen es ab. SQLite ist an dieser Stelle großzügig – wiederhole den Ausdruck trotzdem, sonst läuft deine Abfrage nur hier. Woran das liegt, siehst du in Kapitel 4.

Ganzzahlig oder nicht?

a) Führe die Abfrage aus. Was unterscheidet die beiden Varianten?

b) Ein Auftritt dauert 45 Minuten. Was liefert 45 / 60, was 45 / 60.0?

c) Erkläre die Regel dahinter in einem Satz.

Lösung. Erfrage das Passwort bei deiner Lehrkraft.

Das ist eine beliebte Fehlerquelle in Auswertungen: SELECT SUM(dauer_min) / 60 FROM auftritt sieht harmlos aus und liefert auch eine plausible Zahl – nur eben eine falsche, weil die angebrochene Stunde verschwindet.

Der Fehler fällt nicht auf, weil das Ergebnis nicht absurd aussieht. Genau solche Fehler sind die gefährlichen.

Runden

Texte verketten

Ausdruck Bedeutung
a || b verkettet zwei Texte
UPPER(t) / LOWER(t) Groß- bzw. Kleinschreibung
LENGTH(t) Anzahl der Zeichen
ROUND(z, n) rundet auf n Nachkommastellen
ABS(z) Betrag

Aufgaben

a) Zeige für jede Person den vollen Namen in der Form Nachname, Vorname und ihr Alter im Jahr 2026.

b) Zeige für jeden Auftritt Datum, Beginn und die Auslastung in Prozent, gerundet auf eine Nachkommastelle. Die Auslastung ist die Zuschauerzahl geteilt durch die Kapazität der Bühne – die Kapazität steht allerdings in einer anderen Tabelle. Nimm für diese Aufgabe 8000 als feste Kapazität an; die richtige Lösung folgt in Kapitel 3.

c) Zeige für jedes Ticket eine Zeile der Form Wochenendticket: 189.0 Euro.

d) Zeige alle Bands, deren Name mehr als 12 Zeichen hat, mit ihrer Zeichenzahl.

Tipp 1: zu a)

Du brauchst zwei Verkettungen: einmal zwischen Nachname und Komma-Leerzeichen, einmal zwischen diesem Zwischenergebnis und dem Vornamen. nachname || ', ' || vorname

Tipp 2: zu b)

Prozent heißt: mal 100. Und denk an die ganzzahlige Division – irgendwo muss eine Kommazahl auftauchen.

Tipp 3: zu d)

LENGTH(name) darf sowohl im SELECT als auch im WHERE stehen. Im WHERE musst du den Ausdruck wiederholen, der Alias hilft dort nicht.

Lösung. Erfrage das Passwort bei deiner Lehrkraft.

Selbsttest

Rechnen in Abfragen

Teilbare URL erstellen

Abschnitte auswählen