SQL-Befehle (Injection)

Abfragen mit SQL (Beispielaufgaben aus DB-Buch)

Abfragen mit SQL (Beispielaufgaben aus DB-Buch)


J. C.
Diese Lernkarten bieten einen Überblick über SQL-Befehle im Kontext von Filmvorführungen in Kinos, geeignet für Universitätsniveau. Sie behandeln Abfragen zu Filmtiteln, Kinonamen, Vorführungen und deren Kombinationen, einschließlich der Berechnung von Zuschauerzahlen, Platzverfügbarkeit und Filmlängen. Die Karteikarten sind nützlich für Studierende der Informatik, die SQL-Anwendungen in der Datenbankabfrage vertiefen möchten, insbesondere im Bereich der Film- und Kinodatenverwaltung.
Cartes-fiches
7
Utilisateurs
2
Langue
Allemand
Catégorie
Informatique
Niveau
Université
Créé / Mis à jour
06.03.2016 / 01.11.2016

Cartes-fiches

Alle Namen der Kinos ausgeben, in denen der Film „Die Hand“ läuft.

select Kino.Name From Kino, Vorführung, Film

Where Kino.Name = Vorführung.Kino

And Vorführung.Film = Film.Film-Nr.

And Film.Titel = ‚Die Hand

Gesamtzahl aller zur Verfügung stehenden Plätze in jedem Kino

Select Kino.Name, Kino.Plaetze*Kino.Saele as Gesamtplatzzahl from Kino

Titel der Filme ausgeben die in mindestens 2 Kinos erscheinen

SELECT Film.Titel

FROM Film, Vorfuehrung

WHERE Film.FID=Vorfuehrung.Film

GROUP BY Film.Titel

HAVING COUNT(*)>1

Namen der Kinos angeben die nicht "Die Nase" vorführen

SELECT Kino.Name

FROM Kino

MINUS

SELECT Kino.Name

FROM Kino, Vorfuehrung, Film

WHERE Kino.Name=Vorfuehrung.Kino

AND Vorfuehrung.Film=Film.FID

AND Film.Titel='Die Nase'

Die Länge des längsten Films welcher in jedem Kino läuft angeben. In der Ausgabe soll Kinoname und maximale Länge stehen.

SELECT Kino.Name, MAX(Film.Laenge)

FROM Kino, Vorfuehrung, Film

WHERE Kino.Name=Vorfuehrung.Kino

AND Vorfuehrung.Film=Film.FID

GROUP BY Kino.Name

Zu jedem Filmtitel die maximale Anzahl von Zuschauern ausgeben, die den Film gleichzeitig sehen können (Ausgabe: Filmtitel, maximale Besucherzahl; davon ausgehen, dass alle Vorführungen gleichzeitig und nur einmal am Tag stattfinden, ein Film in einem Kino nicht in mehreren Sälen läuft).

SELECT Film.Titel,SUM(Kino.Plaetze)

FROM Kino, Vorfuehrung, Film

WHERE Kino.Name=Vorfuehrung.Kino

AND Vorfuehrung.Film=Film.FID

GROUP BY Film.Titel

Für jeden Film und jedes Kino angeben, ob dieser Film in diesem Kino läuft oder nicht (Ausgabe: Filmtitel, Kino, Anzahl). Dabei soll eine Anzahl>0 ausgegeben werden, wenn der Film in dem Kino läuft, und sonst soll Anzahl=0 ausgegeben werden.

SELECT F.Titel, K.Name, COUNT(*) Anzahl

FROM (SELECT Film.Titel, Film.FID FROM Film) F,

(SELECT Kino.Name FROM Kino) K,

Vorfuehrung

WHERE Vorfuehrung.Film=F.FID

AND Vorfuehrung.Kino=K.Name

GROUP BY F.Titel, K.Name

UNION

SELECT F.Titel, K.Name, 0

FROM (SELECT Film.Titel, Film.FID FROM Film) F,

(SELECT Kino.Name FROM Kino) K

WHERE NOT EXISTS(

SELECT *

FROM Vorfuehrung

WHERE Vorfuehrung.Film=F.FID

AND Vorfuehrung.Kino=K.Name)

Étudier