Gegeben ist folgendes Datenbankschema:

Gib eine SQL-Abfrage an, die zu jedem Eintrag in der Tabelle angeschaut die Informationen aus der Tabelle FILM verknüpft.
Lösung anzeigen
Du möchtest alle Informationen:
SELECT *Aus den Tabellen angeschaut und FILM:
FROM angeschaut, FILMAber nur die Paare, in denen der Fremdschlüssel in angeschaut und der Schlüssel in FILM identisch sind:
WHERE FILM.FilmID = angeschaut.FilmIDInsgesamt also:
SELECT *
FROM angescchaut, FILM
WHERE FILM.FilmID = angeschaut.FilmID;Gib eine SQL-Abfrage an, die zu jedem Eintrag in der Tabelle angeschaut die Informationen aus der Tabelle NUTZER verknüpft.
Lösung anzeigen
Die Abfrage ist analog zu der in Teilaufgabe a):
SELECT *
FROM angeschaut, NUTZER
WHERE angeschaut.UserID = NUTZER.UserID;Abfragen können über beliebig viele Tabellen erfolgen. Kombiniere die Abfragen aus Teilaufgabe a) und b), um zu jedem Eintrag in der Tabelle angeschaut die zugehörigen Infos zu Nutzer und Film zu bekommen.
Lösung anzeigen
Trenne die Tabellen im FROM-Teil durch ein Komma voneinander.
Mehrere Bedingungen, die gleichzeitig gelten sollen, werden mit AND verknüpft. Vergleiche jeweils die Schlüssel:
SELECT *
FROM angeschaut, NUTZER, FILM
WHERE angeschaut.UserID = NUTZER.UserID
AND angeschaut.FilmID = FILM.FilmID;Die Ergebnistabelle hat alle Spalten aller drei Tabellen FILM, NUTZER und angeschaut.
Entwickle die Anfrage aus Teilaufgabe c) so weiter, dass nur die Nutzungsstunden ausgegeben werden und auch nur dann, wenn die Person den Film "Captain America" geschaut hat.
Lösung anzeigen
Es werden nicht mehr alle Spalten in der Ausgabe benötigt, sondern nur noch die Nutzungsstunden.
Eine weitere Bedingung wird mit AND ergänzt und überprüft, dass der Titel "Captain America" ist:
SELECT Nutzungsstunden
FROM angeschaut, NUTZER, FILM
WHERE angeschaut.UserID = NUTZER.UserID
AND angeschaut.FilmID = FILM.FilmID
AND FILM.Titel = "Captain America";Überlege dir mindestens drei Gründe, warum die Marketingabteilung nur die Nutzungsstunden haben möchte und nicht die anderen Informationen zu Nutzer oder Film.
Lösung anzeigen
- Übersichtlichkeit: Tabellen mit vielen Spalten sind schwerer zu handhaben und zu lesen
- Datenschutz: Über die KundenID kann auf die reale Person geschlossen werden
- Nutzen: Um ihre Hypothese zu testen, benötigen sie keine weiteren Informationen über die Nutzer oder den Film.
- Redundanzen: Die Informationen über den Film wären in allen Datensätzen identisch.