SQL-Aufgaben - Hochschule Bochum

SQL-Aufgaben
Für die SQL-Aufgaben steht Ihnen die Buchversand-Datenbank zur Verfügung.
Zugriff erfolgt über:


http://wwwccb.fh-bochum.de/phpmyadmin
User/Password haben Sie in der Vorlesung/Übung erhalten.
Nach dem Anmelden wählen Sie bitte die Datenbank „Buchversand“ aus:
Danach klicken Sie auf „SQL“:
Es wird ein weiteres Fenster geöffnet, in dem Sie die SQL-Befehle eingeben können. Die Befehle
werden ausgeführt, wenn Sie auf OK drücken. Die Ergebnisse werden im normalen Fenster angezeigt.
Einfache Aufgaben:
1. Welche Interpreten sind in der Datenbank gespeichert?
2. Welche Autoren haben den Vorname „Klaus“?
3. Welche Artikel haben eine Bezeichnung, die mit „BWL“ beginnt?
4. Welche Artikel haben eine Bezeichnung, die „BWL“ irgendwo enthält?
5. An welchen Tagen (Bestelldatum) hat der Kunde mit der Nr. 58 Bestellungen aufgegeben?
6. Welche Bewertungen hat der Artikel mit der Nr. 27?
7. Welche Artikel (Artikelnnummern) wurden mit höchstens „2“ bewertet?
8. Welche Artikel kosten zwischen 20€ und 25€?
Aufgaben mit Aggregatfunktionen:
1. Wie viele Artikel gibt es insgesamt?
2. Wie viele Artikel enthalten „BWL“ in der Bezeichnung?
3. Wie viele Artikel haben einen Preis?
(d.h., Sie zählen Artikel mit einem Preis, der nicht NULL ist)
4. Wie viele unterschiedliche Preise gibt es?
(d.h., Sie zählen die unterschiedlichen Preise der Artikel)
5. Wie groß ist die maximale und durchschnittliche Anzahl von bestellten Artikeln (Tabelle
BestellungArtikel)?
6. Wie ist die durchschnittliche Bewertung des Artikels mit der Nr 27?
7. Welches ist die niedrigste Bewertung, die „S. Ruetz“ erstellt hat?
Aufgaben mit Gruppierung:
1. Listen Sie die durchschnittliche Bewertung zu allen Artikelnummern auf (gruppieren Sie in
der Tabelle Bewertung über die Artikelnummern, und bilden Sie den Durchschnitt)?
2. Ergänzen Sie die vorherige Aufgabe, indem Sie nur Artikel ausgeben, deren durchschnittliche
Bewertung besser als 4.5 ist.
3. Zählen Sie die Anzahl der Kunden, die es zu den verschiedenen Postleitzahlen jeweils gibt.
4. Zählen Sie, wie viele Artikel es für die verschiedenen Preise jeweils gibt.
Aufgaben über zwei Tabellen:
1. Wie ist die Artikelbezeichnung des Buches mit der ISBN 3486586130?
2. Welche Artikelbezeichnungen gibt es zu Büchern des Verlags Pearson Studium?
3. Welche Artikel (Artikelbezeichnung) wurden mit 5 Punkten bewertet? Zeigen Sie die Titel
nicht doppelt an.
4. Welche Lieferdaten gehören zu welchen Bestellungsdaten?
(Daten im Sinne von Datumswerten)
5. Wie lang ist die Lieferzeit (also die Differenz zwischen Lieferdatum und Bestelldatum) aller
Lieferungen?
6. Wie lang sind die durchschnittliche und die maximale Lieferzeit?
7. Wie viele Lieferungen wurden in ein oder zwei Tagen geliefert?
Aufgaben über drei Tabellen:
1. Welche Bücher (ISBN reicht) hat der Autor Jonathan Hamilton geschrieben?
2. Welche Bücher (Bezeichnung des Buchs aus dem Artikel) hat der Autor Jonathan Hamilton
geschrieben?
3. Wie viele Bücher hat der Autor Jonathan Hamilton geschrieben?
4. Welche Artikel hat die Kundin Hanna Lang bestellt?
5. Wie hoch ist der gesamte Umsatz der Kundin Hanna Lang (Summe von Preis * Anzahl)?
6. Wie hoch ist der Umsatz der jeweiligen Kunden? (Gruppierung)
Lösungen:
Einfache Aufgaben:
1. Select * From Interpret
2. Select * From Autor where Vorname="Klaus"
3. Select * From Artikel where Bezeichnung Like "BWL%"
4. Select * From Artikel where Bezeichnung Like "%BWL%"
5. Select Bestelldatum From Bestellung where KundeNr = 58
6. Select Wert From Bewertung Where ArtikelNr = 27
7. Select ArtikelNr From Bewertung Where Wert <= 2?
8. Select * From Artikel Where Preis >=20 and Preis <= 25
Aufgaben mit Aggregatfunktionen:
1. Select count(*) From Artikel?
2. Select count(*) from Artikel where Bezeichnung Like "%BWL%"
3. Select count(Preis) From Artikel
4. Select count(distinct Preis) From Artikel
5. Select avg (Anzahl) as Durchschnitt, max(Anzahl) as Maximum From BestellungArtikel
6. Select avg(Wert) from Bewertung where ArtikelNr=27
7. Select min(Wert) from Bewertung where Name ="S. Ruetz"
Aufgaben mit Gruppierung:
1. Select ArtikelNr, avg(Wert) from Bewertung group by ArtikelNr
2. Select ArtikelNr, avg(Wert) from Bewertung group by ArtikelNr having avg(Wert) > 4.5
3. Select PLZ, count(*) from Kunde group by PLZ
4. Select Preis, count(*) from Artikel group by Preis
Aufgaben über zwei Tabellen:
1. SELECT Artikel.Bezeichnung FROM Artikel, Buch where Buch.ISBN10 = '3486586130' and
Artikel.ArtikelNr = Buch.ArtikelNr
2. SELECT Artikel.Bezeichnung FROM Artikel, Buch where Buch.Verlag = 'Pearson Studium' and
Artikel.ArtikelNr = Buch.ArtikelNr
3. SELECT distinct Artikel.Bezeichnung FROM Artikel, Bewertung where Artikel.ArtikelNr =
Bewertung.ArtikelNr and Bewertung.Wert = 5
4. SELECT Lieferung.Lieferdatum, Bestellung.Bestelldatum from Lieferung, Bestellung where
Lieferung.BestellungNr = Bestellung.BestellungNr
5. SELECT Lieferung.Lieferdatum-Bestellung.Bestelldatum from Lieferung, Bestellung where
Lieferung.BestellungNr = Bestellung.BestellungNr
6. SELECT avg(Lieferung.Lieferdatum-Bestellung.Bestelldatum), max(Lieferung.LieferdatumBestellung.Bestelldatum)from Lieferung, Bestellung where Lieferung.BestellungNr =
Bestellung.BestellungNr
7. SELECT count(*) from Lieferung, Bestellung where Lieferung.BestellungNr =
Bestellung.BestellungNr and Lieferung.Lieferdatum-Bestellung.Bestelldatum <= 2
Aufgaben über drei und mehr Tabellen:
1. SELECT isbn10 from Autor, Buch, BuchAutor where Autor.Vorname = "Jonathan" and
Autor.Nachname = "Hamilton" and Autor.AutorNr = BuchAutor.AutorNr and
BuchAutor.ArtikelNr = Buch.ArtikelNr
2. SELECT Bezeichnung from Autor, Artikel, BuchAutor where Autor.Vorname = "Jonathan" and
Autor.Nachname = "Hamilton" and Autor.AutorNr = BuchAutor.AutorNr and
BuchAutor.ArtikelNr = Artikel.ArtikelNr
3. SELECT count(*) from Autor, Buch, BuchAutor where Autor.Vorname = "Jonathan" and
Autor.Nachname = "Hamilton" and Autor.AutorNr = BuchAutor.AutorNr and
BuchAutor.ArtikelNr = Buch.ArtikelNr
4. SELECT * from Artikel, BestellungArtikel, Bestellung, Kunde where Kunde.Nachname = "Lang"
and Kunde.Vorname="Hanna" and Kunde.KundeNr = Bestellung.KundeNr and
BestellungArtikel.BestellungNr = Bestellung.BestellungNr and BestellungArtikel.ArtikelNr =
Artikel.ArtikelNr
5. SELECT sum(Artikel.Preis * BestellungArtikel.Anzahl) from Artikel, BestellungArtikel,
Bestellung, Kunde where Kunde.Nachname = "Lang" and Kunde.Vorname="Hanna" and
Kunde.KundeNr = Bestellung.KundeNr and BestellungArtikel.BestellungNr =
Bestellung.BestellungNr and BestellungArtikel.ArtikelNr = Artikel.ArtikelNr
6. SELECT Kunde.Nachname,Kunde.Vorname,sum(Artikel.Preis * BestellungArtikel.Anzahl) from
Artikel, BestellungArtikel, Bestellung, Kunde where Kunde.KundeNr = Bestellung.KundeNr
and BestellungArtikel.BestellungNr = Bestellung.BestellungNr and BestellungArtikel.ArtikelNr
= Artikel.ArtikelNr group by Kunde.Nachname,Kunde.Vorname