Übungen zu Abfragen einer Datenbank mit OpenOffice
Download bibliothek.odb
QBE (QBE Query by Example)
SQL (Structured Query Language)
Lade die bibliothek.odb herunter und öffne sie.
Aufgaben:
Stelle
fest, was die Abfrage bewirkt bzw. erstelle eine Anfrage in QBE oder
SQL.
Schalte von QBE nach SQL um (oder umgekehrt) und präge dir
die Schreibweise ein.
SELECT LeserName, LeserAlter, LeserGeschlecht FROM leser
Alle Leser, die jünger als 18 sind
SELECT * FROM leser WHERE LeserAlter BETWEEN 14 and 18
SELECT * FROM leser WHERE LeserAlter NOT IN (14,15) AND (LeserGeschlecht='m') OR (LeserName='Erna')
Die Darstellung in QBE ist recht umständlich und zeigt einen Vorteil von SQL.Ergänzung zum vorangehenden Beispiel: Filter einstellen
und Anfrage noch einmal starten. Filter wieder abstellen.
SELECT * FROM leiht WHERE LeserNr = '45'
Beachte, dass unter QBE jetzt die Tabelle 'leiht' angezeigt wird.SELECT * FROM leser WHERE EXISTS
(SELECT * FROM leiht WHERE leiht.LeserNr=leser.LeserNr)Drücke auf
und bringe die Tabellen 'leser' und 'leiht' auf die Arbeitsfläche.
Stelle die Verknüpfung zwischen den zugehörigen Feldern her.
Starte die folgenden Anfrage.
SELECT LeserName, BuchNr
FROM leser INNER JOIN leiht on leser.LeserNr=leiht.LeserNr
Den Dezimalpunkt bei 1.07 beachten!SELECT LeserNr, count(*) AS ausgeliehen
FROM leiht
GROUP BY LeserNrSELECT LeserNr, count(distinct BuchNr) AS ausgeliehen
FROM leiht
GROUP BY LeserNrSELECT LeserNr, count(distinct BuchNr) AS ausgeliehen
FROM leiht
GROUP BY LeserNr
HAVING min(Datum)<'2002-04-05'
Das Format für das Datum beachten!SELECT LeserNr, count(distinct BuchNr) AS ausgeliehen
FROM leiht
WHERE Datum)>='2002-04-05'
GROUP BY LeserNrSELECT *
FROM leser
ORDER BY LeserAlter DESC, LeserNameDrücke auf
und bringe die Tabellen 'leser' und 'leiht' auf die Arbeitsfläche.
Stelle die Verknüpfung zwischen den zugehörigen Feldern her.
Starte die folgenden Anfrage.
SELECT leser.LeserName, buch.BuchAutor
FROM leiht, leser, buch
WHERE ( leiht.LeserNr = leser.LeserNr AND leiht.BuchNr = buch.BuchNr )
AND ( ( buch.BuchAutor IN ( 'Goethe', 'Schiller' ) ) )