MySQL

Nun können wir mit unserer kleinen Datenbank arbeiten, bzw. Werte auslesen. Die machen wir über die Registerkarte „SQL“:

registerkarteSQL

Kleine Aufgabe wie sie in der IHK Prüfung dran kommen könnte:

Hat Karl Bauer bereits den Film „Fight Club“ ausgeliehen?

Gegeben sind unsere Tabellen und folgende angenommene weitere:

  • filme: film_id, titel, jahr…
  • regisseure: regisseur_id…
  • filme_regisseure: film_id, regisseur_id
  • ausleihvorgaenge: film_id, kunde_id, von, bis, kopie_id
  • kunden: kunde_id, name, vorname

Lösungs-Such-Befehl:

SELECT COUNT(*) 
  FROM kunden
 LEFT JOIN ausleihvorgaenge USING(kunden_id)
 LEFT JOIN filme USING(film_id)
WHERE kunden.name="Bauer" 
  AND kunden.vorname="Karl" 
  AND film.titel="Fight Club"

Nun wird gezählt, wie oft die Kombination „Hieninger+Harro+Fight Club“ auftaucht und zurück gegeben.

Durchschnitt von Werten anzeigen:

SELECT originaltitel, 
       AVG(filmlaenge) 
  FROM filme

SELECT "Durchschnitt", 
       AVG(filmlaenge) 
  FROM filme

SELECT "Durchschnitt", 
       AVG(filmlaenge) AS "Minuten" 
  FROM filme

MySQL kann auch rechnen

SELECT 5*123 AS "Aufgabe", 
       AVG(filmlaenge) AS "Minuten" 
  FROM filme

Wir legen eine Tabelle zum Üben von Berechnungen an:

tab_berechnungen

SELECT *, 
       multiplikator1 * multiplikator2 
  FROM berechnen

SELECT AVG(multiplikator1), 
       AVG(multiplikator2) 
  FROM berechnen

Eine neue Tabelle: umsaetze

Spalten: umsaetze_id, umsaetze, jahr, kunden_id

umsaetze

Mit folgenden Daten gefüttert:

daten

Weitere Abfragen

  SELECT kd_id,
         SUM(umsaetze) 
    FROM umsaetze
GROUP BY kd_id 
ORDER BY SUM(umsaetze) DESC

Hier werden die Umsätze in absteigender Reihenfolge angezeigt.

  SELECT kd_id,
         SUM(umsaetze) 
    FROM umsaetze
GROUP BY kd_id 
ORDER BY SUM(umsaetze) ASC LIMIT 3,9

Nun werden die neun Umsätze in aufsteigender Reihen folge ab Platz 3 angezeigt:

umsaetzeDESC

Die Durchschnittlichen Umsätze pro Kunde in absteigender Reihenfolge anzeigen:

  SELECT kd_id,
         AVG(umsaetze) 
    FROM umsaetze
GROUP BY kd_id
ORDER BY AVG(umsaetze) DESC

Durschnittlicher Umsatz pro Einkauf:

SELECT kd_id,
       AVG(umsaetze) 
  FROM umsaetze

Durchschnitte pro Jahr in absteigender Umsatzgröße:

  SELECT YEAR(datum), 
         AVG(umsaetze)
    FROM umsaetze
GROUP BY YEAR(datum)
ORDER BY AVG (umsaetze) DESC

Verknüpfung der Tabellen umsatz und kunden wenn PK/FK unterschiedlich heißen

SELECT * 
  FROM umsaetze  
  JOIN kunden ON kd_id=name
  SELECT kd_id, SUM(umsaetze) 
    FROM umsaetze
    JOIN kunden ON kd_id=name
GROUP BY kd_id
ORDER BY SUM(umsaetze) DESC
Print Friendly, PDF & Email

Schreibe einen Kommentar