LU06 - Auftrag: Öffentlicher Verkehr

Voraussetzungen

Ausgangslage

Wir möchten VBZ-Tramlinien aus Zürich in unserer Datenbank erfassen, ändern und löschen.

Ihre Tabellen: linie, haltestelle, fahrt.

Aufgabe

1. Datensätze einfügen

linie (Spalten: name, betreiber)

Linie 4, VBZ
 
Linie 11, VBZ
 
Linie 8, VBZ

haltestelle (Spalten: name, ort)

Bellevue, Zürich
 
Rehalp, Zürich
 
Tiefenbrunnen, Zürich
 
Klusplatz, Zürich
 
Zoo, Zürich

fahrt (Spalten: datum, abfahrtszeit, preis, linien_id)

2026-09-22, 07:15:00, 4.60, 1
 
2026-09-22, 07:45:00, 4.60, 1
 
2026-09-22, 08:05:00, 4.60, 2
 
2026-09-22, 08:20:00, 4.60, 3
 
2026-09-22, 08:40:00, 4.60, 2

2. Constraint bewusst verletzen

Versuchen Sie, eine Linie ohne Namen einzufügen (name ist NOT NULL). Lesen Sie die Fehlermeldung.

3. Daten ändern

  1. Der Preis für alle Fahrten der Linie 4 steigt auf 4.80 – ändern Sie mit WHERE linien_id.
  2. Eine Fahrt der Linie 8 wird verschoben: Datum und Abfahrtszeit ändern sich – wählen Sie eine Fahrt gezielt aus (z.B. über datum und abfahrtszeit kombiniert) und ändern Sie beide Spalten in einem Befehl.

Prüfen Sie vorher mit SELECT, wie viele Zeilen von Ihrer WHERE-Bedingung betroffen sind – besonders wichtig, wenn Sie über linien_id filtern, da das mehrere Fahrten gleichzeitig treffen kann.

4. Daten löschen

  1. Eine einzelne Fahrt wird gestrichen – löschen Sie sie gezielt (z.B. über eine Kombination aus datum und abfahrtszeit).
  2. Alle Fahrten der Linie 11 werden neu geplant – löschen Sie alle Fahrten mit linien_id 2 auf einmal.

Denken Sie an den Dry-Run mit SELECT vor jedem DELETE.


Guido Koch