MINT lernen

Abituraufgaben: Bedingungen und Sortierung

Zwei Abituraufgaben zu verknüpften Bedingungen, NULL-Werten und Sortierung.

Dein Fortschritt:
0 / 0 Aufgaben
1

Zimmersuche in der Jugendherberge

AFB I–II

Eine Jugendherberge verwaltet ihre Zimmer in der Tabelle Zimmer (Material 1). Preis ist der Preis pro Bett und Nacht in Euro, Bad ist 1, wenn das Zimmer ein eigenes Bad hat.

Material 1: Tabelle Zimmer
Tabelle Zimmer
ZimmerNrEtageBettenPreisBadAusblick
10112381Hof
10214300See
20126260Wald
20222421See
20324321NULL
30138220See
30231451Wald
  1. Wenden Sie die folgende Abfrage auf die Daten an und geben Sie das Ergebnis in der richtigen Reihenfolge an.
    SELECT ZimmerNr, Preis
    FROM Zimmer
    WHERE Betten >= 4 AND Preis < 32
    ORDER BY Preis DESC;
    3 BE
  2. Erstellen Sie Abfragen für: (1) alle Zimmer mit Seeblick oder Waldblick, sortiert nach Etage aufsteigend und innerhalb der Etage nach Preis absteigend; (2) alle Zimmer, deren Ausblick nicht erfasst ist. 5 BE

Insgesamt 8 BE

Hinweise

Hinweis zu Aufgabe a)
Zuerst beide Bedingungen prüfen (AND), dann nach Preis absteigend sortieren.
Hinweis zu Aufgabe b)
Für (1) passen IN oder OR; für (2) hilft kein Gleichheitszeichen.

Erwartungshorizont

Erwartungshorizont zu Aufgabe a)

102 | 30, 201 | 26, 301 | 22. (203 kostet genau 32 und fällt heraus.)

Erwartungshorizont zu Aufgabe b)
SELECT * FROM Zimmer
WHERE Ausblick IN ('See', 'Wald')
ORDER BY Etage ASC, Preis DESC;

SELECT * FROM Zimmer WHERE Ausblick IS NULL;

(1) 3 BE, (2) 2 BE.

2

Filter für die Buchungsseite

AFB II–III

Auf der Buchungsseite können Gäste filtern. Ein Entwickler setzt den Filter „Zimmer mit eigenem Bad im 1. oder 2. Stock“ so um:

SELECT ZimmerNr FROM Zimmer
WHERE Etage = 1 OR Etage = 2 AND Bad = 1;
  1. Untersuchen Sie, welches Ergebnis die Abfrage für die Daten aus Aufgabe 1 liefert, und erklären Sie die Abweichung vom gewünschten Ergebnis. 4 BE
  2. Verändern Sie die Abfrage so, dass sie korrekt arbeitet und nur die zwei günstigsten passenden Zimmer ausgibt. 3 BE
  3. Bewerten Sie, ob eine Suche mit Ausblick LIKE '%See%' für die Gäste besser ist als Ausblick = 'See'. 4 BE

Insgesamt 11 BE

Hinweise

Hinweis zu Aufgabe a)
AND bindet stärker als OR — setze die unsichtbaren Klammern.
Hinweis zu Aufgabe b)
Klammern setzen, nach Preis sortieren, begrenzen.
Hinweis zu Aufgabe c)
Welche Werte könnten künftig im Feld stehen? Was passiert mit NULL?

Erwartungshorizont

Erwartungshorizont zu Aufgabe a)

Ausgewertet wird Etage = 1 OR (Etage = 2 AND Bad = 1): 101, 102, 202, 203. Zimmer 102 hat kein Bad, erscheint aber, weil alle Zimmer der 1. Etage die OR-Bedingung erfüllen. Richtig: 101, 202, 203.

Erwartungshorizont zu Aufgabe b)
SELECT ZimmerNr FROM Zimmer
WHERE (Etage = 1 OR Etage = 2) AND Bad = 1
ORDER BY Preis ASC
LIMIT 2;

Ergebnis: 203 (32 €), 101 (38 €). Etage IN (1, 2) ist ebenfalls richtig.

Erwartungshorizont zu Aufgabe c)

LIKE '%See%' findet auch künftige Werte wie „Seeblick“ oder „See und Wald“, liefert aber evtl. unerwünschte Treffer (z. B. „Seestraße“). = 'See' ist präziser, setzt aber einheitliche Werte voraus. Zimmer mit NULL werden in beiden Fällen nicht gefunden. Erwartet wird ein begründetes Urteil, etwa: Bei einheitlich gepflegten Werten ist = besser.