Dies ist eine alte Version des Dokuments!
=> Lektion 3 - Zusammenführen der Datensätze mit SQL
Lektion 4 - Übungen
Aufgabe 1 - Finde den Fehler
In folgenden SQL Befehlen wurden Fehler eingebaut. Versuche die Fehler zu finden ohne den SQL Befehl in phpmyadmin auszuführen.
Erst nach deiner Korrektur kannst du den Befehl eingeben und testen.
Die Aufgaben beziehen sich auf die Tabellen schueler
und buecher
aus Lektion 1.2 - Erste SQL-Schritte.
SELECT * FROM buecher WHERE BPreis = '100'
SELECT SVorname SNachname FROM SCHUELER WHERE SNachname = '%E%'
SELECT COUNT (*) FROM schueler
SELECT * FROM schueler WHERE SNachname = Kohler
SELECT * FROM schueler WHERE 'SNachname' = 'Schwarz'
Aufgabe 2 - Verständnis
Aufgabe 3 - Auch SQL kann rechnen
Lösung in 3 Zeilen:
In der Datei notendurchschnitt.sql ist eine leere Tabelle vorgegeben. Finde heraus, wie du mit Hilfe von phpmyadmin diese Tabelle mit Werten füllst und schreibe dann eine Abfrage, die aus einer gegebenen Anzahl von Noten den Notendurchschnitt berechnet.
Aufgabe 4: SQL
Ein Datenbankenbenutzer hat folgende Anfrage an eine Tabelle gestellt:
Die Tabelle hat den Namen R
und die Spalten A,B,C
.
SELECT DISTINCT A, B FROM R WHERE C = A
Das Datenbanksystem hat folgende Datenbank herausgegeben:
R | |
---|---|
A | B |
1 | 2 |
2 | 1 |
Welche der drei Datenbanken kann die „Ausgangsdatenbank“ gewesen sein. Also die Datenbank, die die obige Antwort liefert.
R | |||
---|---|---|---|
A | B | C | D |
1 | 4 | 3 | 1 |
2 | 1 | 2 | 4 |
1 | 2 | 1 | 3 |
2 | 1 | 2 | 2 |
R | |||
---|---|---|---|
A | B | C | D |
1 | 2 | 1 | 1 |
2 | 1 | 2 | 1 |
2 | 1 | 2 | 2 |
1 | 3 | 1 | 2 |
R | ||
---|---|---|
A | B | C |
0 | 2 | 2 |
2 | 1 | 2 |
1 | 2 | 1 |
Aufgabe 5 !!!
Datenbankmodellierung
Ein Reiseveranstalter organisiert die Hotels in seinem Angebot mit einer Datenbank. Es soll möglich sein, eine Übersicht über einige Informationen zu den Hotels zu erhalten:
- Name des Hotels, Bewertung („Sterne“), Distanz zum Strand (in Metern)
- Name des Ortes
- Dauer des Bustransfers vom Flughafen zur Ortsmitte (in Minuten)
- Name des Flughafens, Kürzel des Flughafens, Flugzeit (ab Stuttgart; in Minuten)
In einem Ort liegen mehrere Hotels, von einem Flughafen aus werden mehrere Orte bestellt.
Beispiel: (Dies ist nicht die tatsächliche Lösungstabelle)
Hotelname | Kategorie | Distanz zum Strand | Ort | Transferzeit | Flughafen | Kürzel | Flugzeit |
---|---|---|---|---|---|---|---|
Arena Dorado | 3 | 150 | Puerto del Carmen | 45 | Arrecife | ACE | 230 |
Los Hibiscos | 4 | 200 | Puerto del Carmen | 45 | Arrecife | ACE | 230 |
Bahia Blanca | 5 | 50 | Playa Blanca | 30 | Arrecife | ACE | 230 |
Oceanis Beach Resort | 4 | 50 | Psalidi | 75 | Kos | KGS | 150 |
- Erstelle ein ER-Diagramm, in dem die verschiedenen Entitätstypen mit ihren Attributen dargestellt werden. Gebe den Attributen geeignete Namen.
- Stelle im ER-Diagramm dar, wie die Entitäten miteinander in Beziehung stehen.
- Lege geeignete Primärschlüssel für jeden Entitätstyp fest. Füge die nötigen Fremdschlüssel ein, um die nötigen Beziehungen herzustellen.
- Erstellen nun diese Datenbank in MYSQL. Erzeuge dazu in deiner Datenbank für die Entitätstypen Tabellen, in denen die gewünschten Attribute gespeichert werden können. Denk daran, die Primärschlüssel festzulegen.
- Trage die Beispieldaten von dieser Seite in die Tabelle ein.
- Schreibe eine SQL-Abfrage, um die Namen der Hotels und die Namen der zugehörigen Orte auszugeben.
- Schreibe eine SQL-Abfrage, um die Daten wie in der Beispieltabelle abzufragen.
- Schreibe folgende SQL-Abfrage:
- Zeige die Namen der Orte und die Namen der zugehörigen Flughäfen an.
- Zeige die Hotels, ihre Kategorie und ihre Orte an, sortiere sie absteigend nach der Kategorie.
- Zeige für alle Hotels ihre Namen und die zugehörigen Flughäfen an. Berechne in einer weiteren Spalte die Gesamtreisezeit.