Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende ÜberarbeitungLetzte ÜberarbeitungBeide Seiten der Revision | ||
faecher:informatik:oberstufe:datenbanken:sql_abfrage:start [04.11.2020 20:07] – [Übung 1] sbel | faecher:informatik:oberstufe:datenbanken:sql_abfrage:start [13.01.2022 08:29] – [Beispiele] sbel | ||
---|---|---|---|
Zeile 11: | Zeile 11: | ||
<box 90% round #f4ffc3 #e7f5aa #e7f5aa #e7f5aa |**Aufgabe: | <box 90% round #f4ffc3 #e7f5aa #e7f5aa #e7f5aa |**Aufgabe: | ||
- | * Öffne mit deinem Browser das phpmyadmin Interface: http://db.q-gym.de/ | + | * Öffne mit deinem Browser das phpmyadmin Interface: http://sql.q-gym.de/ |
* Infos zu Benutzern und Passwort bekommst du im Unterricht. | * Infos zu Benutzern und Passwort bekommst du im Unterricht. | ||
</ | </ | ||
===== Datenbankimport ===== | ===== Datenbankimport ===== | ||
- | |||
- | Wir arbeiten zunächst mit einer Beispieldatenbank, | ||
<box 90% round #f4ffc3 #e7f5aa #e7f5aa #e7f5aa |**Aufgabe: | <box 90% round #f4ffc3 #e7f5aa #e7f5aa #e7f5aa |**Aufgabe: | ||
- | * Lade die Datei {{ .:adressen_beispiel.sql.zip |}} auf deinen Computer herunter. | + | * Lade die Datei {{ .:adressen.sql.zip |}} auf deinen Computer herunter. |
* Importiere die Datei in deine Datenbank. Du musst dabei darauf achten, dass du **in der linken Spalte zuerst deine Datenbank auswählst**, | * Importiere die Datei in deine Datenbank. Du musst dabei darauf achten, dass du **in der linken Spalte zuerst deine Datenbank auswählst**, | ||
</ | </ | ||
Zeile 43: | Zeile 41: | ||
==== Ausführungsreihenfolge ==== | ==== Ausführungsreihenfolge ==== | ||
+ | |||
+ | SELECT (Spaltenauswahl bzw. Projektion) | ||
FROM (Tabellenauswahl) | FROM (Tabellenauswahl) | ||
-> WHERE (Zeilenauswahl bzw. Selektion) | -> WHERE (Zeilenauswahl bzw. Selektion) | ||
-> GROUP BY (Gruppierung) | -> GROUP BY (Gruppierung) | ||
-> HAVING (Gruppenauswahl) | -> HAVING (Gruppenauswahl) | ||
- | -> SELECT (Spaltenauswahl bzw. Projektion) | ||
-> ORDER BY (Sortierung) | -> ORDER BY (Sortierung) | ||
| | ||
Zeile 62: | Zeile 60: | ||
Die Abfrage | Die Abfrage | ||
<code sql> | <code sql> | ||
- | SELECT * FROM artikel | + | SELECT * FROM adressen |
</ | </ | ||
Zeile 70: | Zeile 68: | ||
Führe die beiden Beispielabfragen auf deiner Datenbank aus. | Führe die beiden Beispielabfragen auf deiner Datenbank aus. | ||
</ | </ | ||
- | ==== Übung 1 ==== | + | |
+ | ---- | ||
+ | {{: | ||
+ | === (A1) === | ||
Arbeite mit der {{.: | Arbeite mit der {{.: | ||
- | - Alle Datensätze mit Name, Vorname und Wohnort. | + | - Alle Name, Vorname und Wohnort |
- Die Vor- und Nachnamen aller gespeicherten Adressen. | - Die Vor- und Nachnamen aller gespeicherten Adressen. | ||
- Alle Postleitzahlen und Orte, deren PLZ größer oder gleich 80000 ist. | - Alle Postleitzahlen und Orte, deren PLZ größer oder gleich 80000 ist. | ||
Zeile 84: | Zeile 85: | ||
- Alle Einträge mit Vornamen, die mit " | - Alle Einträge mit Vornamen, die mit " | ||
- Alle Personen mit einem Faxgerät und einem Mobiltelefon, | - Alle Personen mit einem Faxgerät und einem Mobiltelefon, | ||
+ | - Alle Personen, die jünger als 45 Jahre sind, in einem Ort wohnen der mit " | ||
+ | ---- | ||
+ | {{: | ||
+ | === (A2) === | ||
- | Arbeite jetzt mit {{.: | + | Denke dir mindestens 10 weitere Kriterien für die Filterung von Adressen aus, notiere diese und erstelle eine passende SQL Abfrage. |
+ | |||
+ | ---- | ||
+ | {{: | ||
+ | === (A3) === | ||
+ | Arbeite jetzt mit {{.: | ||
Man kann mit den Werten, die von einer '' | Man kann mit den Werten, die von einer '' | ||
Zeile 93: | Zeile 103: | ||
Filtere mit einer geeigneten SQL-Abfrage die folgenden Informationen aus der Tabelle heraus. | Filtere mit einer geeigneten SQL-Abfrage die folgenden Informationen aus der Tabelle heraus. | ||
- | - Artikel mit Artikelnummer, Namen und Preis aus, aufsteigend sortiert nach Artikelnummer. | + | - Alle Personen, die mehr als 15 offene Rechnungen haben. |
- | - Alle Artikel mit Nummer, Name, altem Preis und neuem Preis aus, wobei der neue Preis dem um eins erhöhten alten Preis entspricht. | + | - Die Anzahl der Personen, die mehr als 10 offene Rechnungen haben. |
- | - Gib die Tabelle aus, die alle verschiedenen Preise | + | - Die Anzahl der Personen, die mehr als 19 offene Rechnungen haben und kein Guthaben auf ihrem Konto. |
- | - Gib die Tabelle | + | - Alle Vornamen, Nachnamen,, Wohnorte und Kontostände bei denen der Kontostand mehr als 50EUR beträgt, aufsteigend Sortiert nach dem Kontostand und nach dem Nachnamen |
- | - Gib die verschiedenen Preiskategorien | + | - Alle Postleitzahlen in der Datenbank |
- | - Gib Titel und Preis mit Mehrwertsteuer | + | - Alle Geburtsdaten, die in der Datenbank vorkommen, ohne die Datensätze, |
+ | - Den Datensatz | ||
+ | - Die durchschnittliche Zahl der Bonuspunkte aller Personen | ||
+ | - Die durchschnittliche Zahl der offenen Rechungen aller Personen, die jünger als 35 Jahre sind und nicht am Bonusprogramm teilnehmen. | ||
+ | |||
+ | ---- | ||
+ | {{: | ||
+ | === (A4) === | ||
+ | |||
+ | Überlege dir 5 weitere verschachtelte Abfragen | ||
+ | |||
+ | ---- | ||
+ | {{: | ||
+ | === (Bonus) === | ||
+ | |||
+ | Möglicherweise ist hier eine kleine Recherche von nöten. | ||
+ | |||
+ | - Eine Liste aller Mailprovider | ||
+ | - Eine Liste aller Vorwahlen | ||
+ | |||
+ | |||
+ | ==== Material ==== | ||
+ | |||
+ | {{simplefilelist>: | ||