Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung Nächste Überarbeitung | Vorherige Überarbeitung | ||
faecher:informatik:oberstufe:datenbanken:sql_abfrage:start [04.11.2020 21:30] – [Beispiele] sbel | faecher:informatik:oberstufe:datenbanken:sql_abfrage:start [16.01.2024 11:42] (aktuell) – [Beispiele] Frank Schiebel | ||
---|---|---|---|
Zeile 10: | Zeile 10: | ||
Wir haben ein zentrales DBMS zur Benutzung durch die Schülerinnen und Schüler eingerichtet: | Wir haben ein zentrales DBMS zur Benutzung durch die Schülerinnen und Schüler eingerichtet: | ||
- | <box 90% round #f4ffc3 #e7f5aa #e7f5aa #e7f5aa |**Aufgabe: | + | < |
- | * Öffne mit deinem Browser das phpmyadmin Interface: | + | * [[# |
- | * Infos zu Benutzern und Passwort bekommst du im Unterricht. | + | * [[#kmg|KMG Friedrichshafen]] |
- | </ | + | <pane id=" |
+ | | ||
+ | * Öffne mit deinem Browser das phpmyadmin Interface: | ||
+ | * Infos zu Benutzern und Passwort bekommst du im Unterricht. | ||
+ | </box> | ||
+ | </ | ||
+ | <pane id=" | ||
+ | | ||
+ | * Öffne mit deinem Browser das phpmyadmin Interface: https:// | ||
+ | | ||
+ | </ | ||
+ | </ | ||
+ | </ | ||
===== Datenbankimport ===== | ===== Datenbankimport ===== | ||
Zeile 41: | Zeile 52: | ||
==== 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 60: | Zeile 71: | ||
Die Abfrage | Die Abfrage | ||
<code sql> | <code sql> | ||
- | SELECT * FROM artikel | + | SELECT * FROM adressen |
</ | </ | ||
Zeile 75: | Zeile 86: | ||
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 91: | Zeile 102: | ||
=== (A2) === | === (A2) === | ||
- | Denke dir mindestens | + | Denke dir mindestens |
---- | ---- | ||
Zeile 105: | Zeile 116: | ||
- Alle Personen, die mehr als 15 offene Rechnungen haben. | - Alle Personen, die mehr als 15 offene Rechnungen haben. | ||
- Die Anzahl der Personen, die mehr als 10 offene Rechnungen haben. | - Die Anzahl der Personen, die mehr als 10 offene Rechnungen haben. | ||
- | - Die Anzahl der Personen, die mehr als 19 offene | + | - Die Anzahl der Personen, die mehr als 19 offene |
- | - Alle Vornamen, Nachnamen,, Wohnorte und Kontostände bei denen der Kontostand mehr als 50EUR beträgt, aufsteigend Sortiert nach dem Kontostand. | + | - Alle Vornamen, Nachnamen,, Wohnorte und Kontostände bei denen der Kontostand mehr als 50EUR beträgt, aufsteigend Sortiert nach dem Kontostand |
- | - Alle Postleitzzahlen | + | - Alle Postleitzahlen |
- Alle Geburtsdaten, | - Alle Geburtsdaten, | ||
- Den Datensatz mit dem höchsten Kontostand | - Den Datensatz mit dem höchsten Kontostand | ||
- Die durchschnittliche Zahl der Bonuspunkte aller Personen aus Aachen die am Bonusproramm teilnehmen. | - Die durchschnittliche Zahl der Bonuspunkte aller Personen aus Aachen die am Bonusproramm teilnehmen. | ||
+ | - Die durchschnittliche Zahl der offenen Rechungen aller Personen, die jünger als 35 Jahre sind und nicht am Bonusprogramm teilnehmen. | ||
---- | ---- | ||
{{: | {{: | ||
- | === (A4) Bonus === | + | === (A4) === |
+ | |||
+ | Überlege dir 5 weitere verschachtelte Abfragen mit mehreren Kriterien, welche die Befehle aus Blatt B verwenden. | ||
+ | |||
+ | ---- | ||
+ | {{: | ||
+ | === (Bonus) === | ||
Möglicherweise ist hier eine kleine Recherche von nöten. | Möglicherweise ist hier eine kleine Recherche von nöten. | ||
- Eine Liste aller Mailprovider | - Eine Liste aller Mailprovider | ||
+ | - Eine Liste aller Vorwahlen | ||
+ | |||
+ | ++++ Lösungshinweis I | | ||
+ | Man muss den Inhalt einer Tabellenzelle aufteilen. Das geht zum Beispiel mit SELECT SUBSTRING_INDEX, | ||
+ | https:// | ||
+ | |||
+ | <WRAP center round box 90%> | ||
+ | **Hinweis**: | ||
+ | </ | ||
+ | |||
+ | ++++ | ||
+ | |||
+ | ++++ Lösungshinweis II | | ||
+ | |||
+ | Für die Maildomains sieht de Lösung so aus: | ||
+ | <code sql> | ||
+ | SELECT DISTINCT SUBSTRING_INDEX(EMail, | ||
+ | </ | ||
+ | |||
+ | Die Lösung für die Vorwahlen kannst du sicher selbst finden. | ||
+ | ++++ | ||
+ | ==== Material ==== | ||
+ | |||
+ | {{simplefilelist>: | ||
+ | |||
+ |