Weiter zum Dokument
Dies ist ein Premium-Dokument.. Einige Dokumente auf Studocu sind Premium-Dokumente. Upgrade dein Konto auf Premium, um Zugriff zu erhalten.

SQL: DDL-Anweisungen Übung Strandkörbe

DDL Anweisungen um eine Beispielsdatenbanken zu den Übungsaufgaben "St...
Kurs

Datenbanken I (01671)

172 Dokumente
Studierenden haben 172 Dokumente in diesem Kurs geteilt
Akademisches Jahr: 2020/2021
Hochgeladen von:
0Follower
40Uploads
56upvotes

Kommentare

Bitte logge dich ein oder registriere dich, um Kommentare zu posten.

Text Vorschau

DDL-Anweisungen um eine Beispieldatenbank zur Aufgabe 2 aus den Einsendeaufgaben 2 SS21 zur erschaffen und die Aufgaben (am Ende eingefügt) am Computer auszuprobieren. Eine Google-Suche nach "sql online" wird euch Seiten aufzeigen, bei denen ihr die Tables erschaffen und anschließend manipulieren könnt.

CREATE TABLE STRANDKORBVERLEIHER

(

SKVNR INTEGER,

NAME VARCHAR(80),

CONSTRAINT skvnr_pk PRIMARY KEY(SKVNR) );

INSERT INTO STRANDKORBVERLEIHER

VALUES

(001, 'Beach Rent'), (002, 'Huberts Strandhütte'), (003, 'Dünensegler'), (004, 'Korbkönig') ;

CREATE TABLE STRANDABSCHNITT

(

SANR INTEGER,

ADRESSE VARCHAR(80),

LÄNGE INTEGER,

BREITE INTEGER,

SKVNR INTEGER,

CONSTRAINT sanr_pk PRIMARY KEY(SANR), CONSTRAINT skvnr_fk FOREIGN KEY(SKVNR) REFERENCES STRANDKORBVERLEIHER(SKVNR) );

INSERT INTO STRANDABSCHNITT

VALUES

(001, 'Strandstraße 17', 50, 80, 001), (002, 'Strandstraße 19', 45, 40, 001), (003, 'Breite Gasse 122', 30, 20, 002), (004, 'Zur Düne 12', 120, 90, 003), (005, 'Kronengasse 8', 80, 200, 004) ;

CREATE TABLE STRANDKORB

(

SKNR INTEGER,

SANR INTEGER,

QUAL_KATEGORIE CHAR,

CONSTRAINT sknr_pk PRIMARY KEY(SKNR), CONSTRAINT sanr_fk FOREIGN KEY(SANR) REFERENCES STRANDABSCHNITT(SANR) );

INSERT INTO STRANDKORB

(028, 002, 'B'),

(029, 002, 'B'),

(030, 002, 'B'),

(031, 002, 'C'),

(032, 002, 'C'),

(033, 002, 'D'),

(034, 002, 'E'),

(035, 002, 'F'),

(036, 003, 'A'),

(037, 003, 'A'),

(038, 003, 'B'),

(039, 003, 'B'),

(040, 003, 'B'),

(041, 003, 'C'),

(042, 003, 'C'),

(043, 003, 'D'),

(044, 003, 'D'),

(045, 003, 'D'),

(046, 003, 'E'),

(047, 003, 'E'),

(048, 003, 'F'),

(049, 003, 'F'),

(050, 003, 'F'),

(051, 004, 'A'),

(052, 004, 'A'),

(053, 004, 'B'),

(054, 004, 'B'),

(055, 004, 'C'),

(056, 004, 'C'),

(057, 004, 'C'),

(058, 004, 'C'),

(059, 004, 'C'),

(060, 004, 'C'),

(061, 004, 'C'),

(062, 004, 'C'),

(063, 004, 'D'),

(064, 004, 'D'),

(065, 004, 'E'),

(066, 004, 'E'),

(067, 004, 'F'),

(068, 004, 'F'),

(069, 004, 'F'),

(070, 004, 'F'),

(071, 005, 'A'),

(072, 005, 'A'),

(073, 005, 'B'),

(074, 005, 'B'),

(075, 005, 'C'),

(076, 005, 'C'),

(077, 005, 'C'),

(078, 005, 'D'),

(079, 005, 'D'),

(080, 005, 'D'),

(081, 005, 'D'),

(082, 005, 'D'),

VALUES

(056, 'Hans Wackel', 'Zur schlechten Aussicht 23', 5567), (057, 'Gerda Wackel', 'Zur schlechten Aussicht 23', 5568), (067, 'Norbert Hack', 'Zur schlechten Aussicht 23', 5569), (068, 'Franz Franck', 'Zur schlechten Aussicht 23', 5571), (096, 'Karl Knack', 'Dicke Düne 99', 5581), (098, 'Kunigunde Knack', 'Dicke Düne 99', 5583), (125, 'Else Ernte', 'Dicke Düne 99', 5601), (133, 'Michael Mörse', 'Zum Wellenbrecher 1', 5681), (134, 'Monika Mörse', 'Zum Wellenbrecher 1', 5682) ;

CREATE TABLE MIETET

(

GNR INTEGER,

SKNR INTEGER,

VON DATE,

BIS DATE,

CONSTRAINT gnr_sknr_pk PRIMARY KEY(GNR, SKNR), CONSTRAINT gnr_fk FOREIGN KEY(GNR) REFERENCES GAST(GNR), CONSTRAINT sknr_fk FOREIGN KEY(SKNR) REFERENCES STRANDKORB(SKNR) );

INSERT INTO MIETET

VALUES

(056, 001, '2021-07-01', '2021-07-15'),

(057, 002, '2021-07-01', '2021-07-15'),

(067, 019, '2021-07-15', '2021-08-15'),

(068, 020, '2021-07-15', '2021-08-15'),

(096, 033, '2021-08-01', '2021-08-15'),

(098, 034, '2021-08-01', '2021-08-15'),

(125, 045, '2021-08-15', '2021-08-29'),

(133, 066, '2021-08-15', '2021-08-22'),

(134, 089, '2021-08-15', '2021-08-29')

;

Formulieren Sie die folgenden Anfragen in SQL:

a) Wieviele Strandkörbe der höchsten Kategorie ‚F‘ gibt es? (2 Punkte) Richtige Lösung: 19

b) Liste die Adressen der Strandabschnitte, in denen Strandkörbe der höchsten Kategorie ‚F‘ stehen. (3 Punkte) Richtige Lösung: ADRESSE Sandstraße 17 Sandstraße 19 Breite Gasse 122 Zur Düne 12 Kronengasse 8

Lösungen:

a) Wieviele Strandkörbe der höchsten Kategorie ‚F‘ gibt es? (2 Punkte) SELECT COUNT(*) FROM STRANDKORB WHERE QUAL_KATEGORIE = 'F'

b) Liste die Adressen der Strandabschnitte, in denen Strandkörbe der höchsten Kategorie ‚F‘ stehen. (3 Punkte) SELECT DISTINCT ADRESSE FROM STRANDABSCHNITT NATURAL JOIN STRANDKORB WHERE QUAL_KATEGORIE = 'F'

c) Wieviele Strandkörbe stehen an den Strandabschnitten mit der Adresse „Strandstraße 17“? (4 Punkte) SELECT COUNT(sknr) FROM STRANDABSCHNITT NATURAL JOIN STRANDKORB WHERE adresse = 'Sandstraße 17'

d) An welchem Strandabschnitt stehen die meisten Strandkörbe? (6 Punkte) Schnelle Lösung: SELECT sanr FROM STRANDABSCHNITT NATURAL JOIN STRANDKORB GROUP BY SANR ORDER BY COUNT(sknr) DESC LIMIT 1

Lösung laut Musterlösung:

SELECT SANR

FROM

( SELECT SANR, count() AS Anzahl FROM Strandkorb GROUP BY SANR ) WHERE Anzahl = ( SELECT max (Anz) FROM ( SELECT SANR, count() AS Anz FROM Strandkorb GROUP BY SANR ) )

e) Welche Gäste haben von ihrem Urlaubsdomizil zu ihrem Strandkorb mehr als einen Kilometer zurückzulegen? (5 Punkte) Anmerkung: Benutzen Sie die Funktion ‘distance (Adr1, Adr2)‘. Wir nehmen an, dass sie die minimale Entfernung zwischen den beiden Adressen in Metern berechnet.

SELECT Gast FROM Gast NATURAL JOIN Mietet NATURAL JOIN Strandkorb NATURAL JOIN Strandabschnitt WHERE distance (Gast, Strandabschnitt) > 1000

f) Wieviel Strandkörbe sind in der Zeit vom 25.-31. August belegt? (6 Punkte) Anmerkung: Gesucht sind die Strandkörbe, die innerhalb des angegebenen Zeitraums an mindestens einem Tag vermietet sind. Achtung: Sie müssen mehrere Fälle überprüfen!

War dieses Dokument hilfreich?
Dies ist ein Premium-Dokument.. Einige Dokumente auf Studocu sind Premium-Dokumente. Upgrade dein Konto auf Premium, um Zugriff zu erhalten.

SQL: DDL-Anweisungen Übung Strandkörbe

Kurs: Datenbanken I (01671)

172 Dokumente
Studierenden haben 172 Dokumente in diesem Kurs geteilt
War dieses Dokument hilfreich?

Dies ist eine Vorschau

Möchtest du uneingeschränkten Zugang? Wähle Premium und erhalte Zugriff auf alle 12 Seiten
  • Zugriff auf alle Dokumente

  • Erhalte unbegrenzte Downloads

  • Verbessere deine Noten

Hochladen

Teile deine Dokumente und erhalte Zugriff

Bereits Premium-Mitglied?
DDL-Anweisungen um eine Beispieldatenbank zur Aufgabe 2 aus den Einsendeaufgaben 2 SS21 zur
erschaffen und die Aufgaben (am Ende eingefügt) am Computer auszuprobieren.
Eine Google-Suche nach "sql online" wird euch Seiten aufzeigen, bei denen ihr die Tables erschaffen und
anschließend manipulieren könnt.
CREATE TABLE STRANDKORBVERLEIHER
(
SKVNR INTEGER,
NAME VARCHAR(80),
CONSTRAINT skvnr_pk PRIMARY KEY(SKVNR)
);
INSERT INTO STRANDKORBVERLEIHER
VALUES
(001, 'Beach Rent'),
(002, 'Huberts Strandhütte'),
(003, 'Dünensegler'),
(004, 'Korbkönig')
;
CREATE TABLE STRANDABSCHNITT
(
SANR INTEGER,
ADRESSE VARCHAR(80),
LÄNGE INTEGER,
BREITE INTEGER,

Warum ist diese Seite unscharf?

Dies ist ein Premium-Dokument. Werde ein Premium-Mitglied, um das gesamte Dokument zu lesen.

Warum ist diese Seite unscharf?

Dies ist ein Premium-Dokument. Werde ein Premium-Mitglied, um das gesamte Dokument zu lesen.

Warum ist diese Seite unscharf?

Dies ist ein Premium-Dokument. Werde ein Premium-Mitglied, um das gesamte Dokument zu lesen.

Warum ist diese Seite unscharf?

Dies ist ein Premium-Dokument. Werde ein Premium-Mitglied, um das gesamte Dokument zu lesen.