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 20:35] – [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 |
---- | ---- | ||
{{: | {{: | ||
=== (A3) === | === (A3) === | ||
- | Arbeite jetzt mit {{.: | + | Arbeite jetzt mit {{.: |
Man kann mit den Werten, die von einer '' | Man kann mit den Werten, die von einer '' | ||
Zeile 103: | Zeile 114: | ||
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 der Artikel | + | - 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 mit mehreren Kriterien, welche | ||
+ | |||
+ | ---- | ||
+ | {{: | ||
+ | === (Bonus) === | ||
+ | |||
+ | Möglicherweise ist hier eine kleine Recherche von nöten. | ||
+ | |||
+ | - Eine Liste aller Mailprovider | ||
+ | - Eine Liste aller Vorwahlen | ||
+ | |||
+ | ++++ Lösungshinweis I | | ||
+ | Man muss den Inhalt einer Tabellenzelle aufteilen. Das geht zum Beispiel | ||
+ | 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>: | ||