Video-Tutorial

Wenn Sie das Video nur anschauen, werden Sie kaum etwas lernen. Arbeiten Sie für den besten Lerneffekt am Rechner direkt mit und vollziehen Sie die Beispiele nach.

Folien



(letzte Synchronisation der PDF-Präsentation: 02.03.2017)

Falls keine PDF-Präsentation zu sehen ist, klicken Sie zum Download hier: Direktdownload PDF-Präsentation

Übungen

Alle Übungen finden Sie in der Materialsammlung (dort auch alle zusätzlichen Dateien wie Bilder, Klassendiagramme oder HTML-Vorlagen!).

Die aktuelle Übung können Sie hier als txt-File herunterladen.


***** Übungen: MySQL - Subselects/Subqueries *****

MySQL13_1: Subquery erzeugt Wert - Buchladen

In dieser Übung werden Subselects verwendet, die einen einzelnen Wert zurückgeben. Manche Aufgaben könnten Sie auch auf andere (einfachere) Art und Weise erledigen, aber es geht hier darum, Subqueries zu üben und zu verwenden.

Tipp: Sie können für diesen Wert erst einmal einen beliebigen Wert annehmen, um die äußere Abfrage zu formulieren (... WHERE einkaufspreis>100); dann ersetzen Sie diesen Wert (im Beispiel 100) durch eine SELECT-Abfrage, die den gewünschten Wert aus der Datenbank holt.

Benutzen Sie für diese Übung diese Datenbank:
07mysql/_dumps/buchladen/buchladen.sql
Hier das Model (ERD) als Bilddatei:
07mysql/_dumps/buchladen/buchladen_ERD.png

A1) Welches ist das teuerste Buch in der Datenbank?


A2) Welches ist das billigste Buch in der Datenbank?

B) Lassen Sie sich alle Bücher ausgeben, deren Einkaufspreis über dem durchschnittlichen Einkaufspreis aller Bücher in der Datenbank liegt.          
            

C) Lassen Sie sich alle Bücher ausgeben, deren Einkaufspreis über dem durchschnittlichen Einkaufspreis der Thriller liegt.

D) Lassen Sie sich alle Thriller ausgeben, deren Einkaufspreis über dem durchschnittlichen Einkaufspreis der Thriller liegt.

E) Lassen Sie sich alle Bücher ausgeben, bei denen der Gewinn überdurchschnittlich ist; bei der Berechnung des Gewinndurchschnitts berücksichtigen Sie NICHT das Buch mit der id 22.




MySQL13_2: Subselects, bei denen der Subselect eine Tabelle zurückgibt - Buchladen (mit Tipps)

In dieser Übung werden Subselects verwendet, die eine Tabelle zurückgeben.

Benutzen Sie für diese Übung diese Datenbank:
07mysql/_dumps/buchladen/buchladen.sql
Hier das Model (ERD) als Bilddatei:
07mysql/_dumps/buchladen/buchladen_ERD.png

a) Wir brauchen die Summe der durchschnittlichen Einkaufspreise der einzelnen Sparten. Allerdings wollen wir dabei nicht die Sparte Humor berücksichtigen, ebensowenig die Sparten, in denen der durchschnittliche Einkaufspreis 10 Euro oder weniger beträgt.

Tipp: Erstellen Sie ein Subselect, dessen Ergebnis eine Tabelle ist, in der die gewünschten Sparten und ihre durchschnittlichen Einkaufspreise ausgegeben werden.
Von dieser Tabelle fragen Sie anschließend die Summe ab.

Lösung: 218.67

b)
"Bekannte Autoren" definieren wir als Autoren, die mehr als 4 Bücher veröffentlicht haben. Wie viele solcher Autor/innen haben wir in der Datenbank?

Tipp: Erstellen Sie ein Subselect, das Ihnen die bekannten Autoren ausgibt. Um zu sehen, ob Ihr Ergebnis plausibel wirkt, lassen Sie sich ausgeben: Vorname, Nachname, Anzahl veröffentlichter Büche.
Über dieses Subselect machen Sie eine einfach COUNT-Abfrage.


c) Ihr Chef sagt zu Ihnen: "Schauen Sie sich mal alle Verlage an, die im Durchschnitt weniger als 10 Euro Gewinn pro Buch machen. Ich glaube, die verdienen im Schnitt höchstens 7 Euro pro Buch."

Tipp: Erstellen Sie für den ersten Satz des Chefs ein Subselect, das Sie für die Überprüfung des zweiten Satzes verwenden (Ausgabe: 'durchschnittlicher Gewinn pro Buch der Verlage, die weniger als 10 Euro pro Buch verdienen')