Ich bin relativ neu bei diesem Thema und lerne für meine Klausur. Ich habe einige Übungsaufgaben gemacht. Hab ich diese korrekt gelöst (wahrscheinlich nicht) und was habe ich falsch gemacht? Danke im Vorraus
ER Diagramm
Die Aufgabe und meine Lösung dazu
ER Diagramm
Die Aufgabe und meine Lösung dazu
SQL:
--1. Aufgabe
--Erstellen Sie ein SQL-Statement, das alle Interpreten ausgibt, die mit „U“ beginnen
SELECT *
FROM tbl_interpret
WHERE Vorname LIKE 'U%'
--2. Aufgabe
--Erstellen Sie ein SQL-Statement, das alle Musikstücke vom Interpreten „Udo Lindenberg“
--ausgibt
SELECT Titel
FROM tbl_musikstueck
INNER JOIN tbl_mididatei
ON tbl_musikstueck.ID = tbl_mididatei.MusikstueckID
INNER JOIN tbl_interpret_mididatei
ON tbl_mididatei.ID = tbl_interpret_mididatei.MidiDateiID
INNER JOIN tbl_interpret
ON tbl_interpret_mididatei.InterpretID = tbl_interpret.ID
WHERE tbl_interpret.Vorname = 'Udo'
AND tbl_interpret.Nachname = 'Lindenberg'
--3. Aufgabe
--Erstellen Sie ein SQL-Statement, das die Anzahl der Midi-Dateien ausgibt, die dem Genre
--„Indie“ zugehören.
SELECT tbl_mididatei.ID, tbl_genre.Bezeichnung
FROM tbl_genre
INNER JOIN tbl_genre_mididatei
ON tbl_genre.ID = tbl_genre_mididatei.gerneID
INNER JOIN tbl_mididatei
ON tbl_genre_mididatei.midiID = tbl_mididatei.ID
WHERE tbl_genre.Bezeichnung = 'Indie'
GROUP BY tbl_genre.Bezeichnung
--4. Aufgabe
--Erstellen Sie ein SQL-Statement, das die Anzahl der Midi-Dateien ausgibt je Stimmkategorie.
SELECT tbl_stimmkategorie.Bezeichnung, tbl_mididatei.ID
FROM tbl_stimmkategorie
INNER JOIN tbl_mididatei
ON tbl_stimmkategorie.id = tbl_mididatei.StimmID
GROUP BY tbl_stimmkategorie.Bezeichnung
--5. Aufgabe
--Erstellen Sie ein SQL-Statement, das die Musikstücke auflistet, die dem
--Schwierigkeitsgrad „Anfänger“ bei der Midi-Datei entspricht. Dopplungen sollen nicht
--ausgegeben werden
SELECT DISTINCT tbl_schwierigkeitsgrad.Bezeichnung, tbl_musikstueck.Titel
FROM tbl_musikstueck
INNER JOIN tbl_mididatei
ON tbl_musikstueck.ID = tbl_mididatei.MusikstueckID
INNER JOIN tbl_schwierigkeitsgrad
ON tbl_mididatei.SchwierigkeitsgradID = tbl_schwierigkeitsgrad.ID
WHERE tbl_schwierigkeitsgrad.Bezeichnung = 'Anfaenger'
--6. Aufgabe
--Erstellen Sie ein SQL-Statement, das die Interpreten ausgibt, die jeweils mehr als 10 Midi-Dateien in der Datenbank haben.
SELECT COUNT(tbl_mididatei.ID) AS Anzahl, tbl_interpret.Nachname
FROM tbl_interpret
INNER JOIN tbl_interpret_mididatei
ON tbl_interpret.ID = tbl_interpret_mididatei.InterpretID
INNER JOIN tbl_mididatei
ON tbl_interpret_mididatei.MidiDateiID = tbl_mididatei.ID
HAVING COUNT(tbl_mididatei.ID) > 10
--7. Aufgabe
--Erstellen Sie ein SQL-Statement, das die Interpreten ausgibt, die älter sind als 65 Jahre
SELECT TIMESTAMPDIFF(YEAR,Geburtsdatum,CURRENT_DATE) AS Lebensalter, Vorname, Nachname
FROM tbl_interpret
HAVING Lebensalter > 65
--8. Aufgabe
--Erstellen Sie ein SQL-Statement, das die Musikstücke ausgibt, die älter sind als 30 Jahre und
--von denen mehr als 10 Midi-Dateien existieren.
SELECT tbl_musikstueck.Titel, COUNT(tbl_mididatei.MusikstueckID) AS Anzahl, TIMESTAMPDIFF(YEAR, Erscheinungsjahr,CURRENT_TIMESTAMP) AS Midialter
FROM tbl_musikstueck
INNER JOIN tbl_mididatei
ON tbl_musikstueck.ID = tbl_mididatei.MusikstueckID
HAVING Anzahl > 10 AND Midialter > 30