MINT lernen

Abituraufgaben: SELECT, FROM und WHERE

Zwei Abituraufgaben zu einfachen SQL-Abfragen mit Bedingung und Berechnung.

Dein Fortschritt:
0 / 0 Aufgaben
1

Die Gärtnerei im Netz

AFB I–II

Eine Gärtnerei bietet ihre Pflanzen online an. Die Daten liegen in der Tabelle Pflanze (Material 1); Hoehe in cm, Preis in Euro, Winterhart ist 1 (ja) oder 0 (nein).

Material 1: Tabelle Pflanze
Tabelle Pflanze
PflanzeNrNameArtStandortHoehePreisWinterhart
1LavendelStaudeSonne606.91
2FunkieStaudeSchatten458.51
3OlivenbaumBaumSonne18049.00
4FarnStaudeSchatten707.21
5ZitronenbaumBaumSonne12039.00
6BuchsbaumStrauchHalbschatten5012.01
  1. Geben Sie das Ergebnis der folgenden Abfrage an:
    SELECT Name, Preis
    FROM Pflanze
    WHERE Standort = 'Schatten';
    2 BE
  2. Erstellen Sie SQL-Abfragen für: (1) alle Angaben zu Pflanzen, die höher als 100 cm werden; (2) die Namen aller nicht winterharten Pflanzen; (3) jede vorkommende Pflanzenart genau einmal. 6 BE
  3. Beschreiben Sie, in welcher Reihenfolge ein DBMS die Klauseln der Abfrage aus a) auswertet. 3 BE

Insgesamt 11 BE

Hinweise

Hinweis zu Aufgabe a)
Erst die Zeilen mit Standort Schatten, dann nur Name und Preis.
Hinweis zu Aufgabe b)
Für (3) braucht man das Schlüsselwort, das Doppelte entfernt.
Hinweis zu Aufgabe c)
Die Schreibreihenfolge ist nicht die Auswertungsreihenfolge.

Erwartungshorizont

Erwartungshorizont zu Aufgabe a)

Funkie | 8.50 und Farn | 7.20.

Erwartungshorizont zu Aufgabe b)
SELECT * FROM Pflanze WHERE Hoehe > 100;
SELECT Name FROM Pflanze WHERE Winterhart = 0;
SELECT DISTINCT Art FROM Pflanze;

Je 2 BE; Winterhart != 1 ist ebenfalls richtig.

Erwartungshorizont zu Aufgabe c)

FROM: Tabelle Pflanze bereitstellen; WHERE: nur Zeilen mit Standort = Schatten behalten; SELECT: von diesen die Spalten Name und Preis ausgeben.

2

Rabattaktion

AFB II–III

Im Herbst gibt es auf alle winterharten Pflanzen 20 % Rabatt. Die Webseite soll dazu eine Liste mit Name, altem Preis und neuem Preis anzeigen.

  1. Entwickeln Sie eine SQL-Abfrage, die diese Liste liefert. Die berechnete Spalte soll Aktionspreis heißen. 4 BE
  2. Eine Mitarbeiterin schreibt SELECT Name FROM Pflanze WHERE Standort = Sonne; Analysieren Sie den Fehler und korrigieren Sie die Abfrage. 3 BE
  3. Beurteilen Sie den Vorschlag, den Aktionspreis als eigene Spalte in der Tabelle Pflanze zu speichern, statt ihn in der Abfrage zu berechnen. 4 BE

Insgesamt 11 BE

Hinweise

Hinweis zu Aufgabe a)
In SELECT darf gerechnet werden; AS benennt die Spalte.
Hinweis zu Aufgabe b)
Wie unterscheidet SQL zwischen einem Text und einem Spaltennamen?
Hinweis zu Aufgabe c)
Was passiert, wenn sich der Preis oder der Rabatt ändert?

Erwartungshorizont

Erwartungshorizont zu Aufgabe a)
SELECT Name, Preis, Preis * 0.8 AS Aktionspreis
FROM Pflanze
WHERE Winterhart = 1;

Ergebnis: Lavendel 5.52, Funkie 6.80, Farn 5.76, Buchsbaum 9.60.

Erwartungshorizont zu Aufgabe b)

Ohne Hochkommas wird Sonne als Spaltenname interpretiert; die Spalte existiert nicht, das DBMS meldet einen Fehler. Richtig: WHERE Standort = 'Sonne'.

Erwartungshorizont zu Aufgabe c)

Eine gespeicherte Spalte ist redundant: Sie lässt sich aus Preis und Rabatt berechnen. Bei Preisänderungen droht Inkonsistenz (Änderungsanomalie), und nach der Aktion muss die Spalte gelöscht werden. Die Berechnung in der Abfrage ist flexibler; eine Speicherung wäre nur bei sehr aufwendigen Berechnungen sinnvoll.