faecher:informatik:oberstufe:datenbanken:sql_abfrage:start

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
faecher:informatik:oberstufe:datenbanken:sql_abfrage:start [21.10.2022 08:52] Frank Schiebelfaecher:informatik:oberstufe:datenbanken:sql_abfrage:start [24.11.2024 16:40] (aktuell) Frank Schiebel
Zeile 3: Zeile 3:
 ===== Einstieg ===== ===== Einstieg =====
  
-Die Structured Query Language (SQL) ist eine standardisierte Datenbanksprache zur Nutzung auf relationalen Datenbanksystemen wie MySQL. Mit SQL können Abfragen, Manipulationen und Änderungen auf bzw. an den Tabellen der Datenbank vorgenommen werden.+Die Structured Query Language (SQL) ist eine standardisierte Datenbanksprache zur Nutzung auf relationalen Datenbanksystemen wie MySQL oder MariaDB. Mit SQL können Abfragen, Manipulationen und Änderungen auf bzw. an den Tabellen der Datenbank vorgenommen werden.
  
  
-===== Anmelden am Webinterface =====+===== Datenbankzugriff =====
  
-Wir haben ein zentrales DBMS zur Benutzung durch die Schülerinnen und Schüler eingerichtet:+Um die folgenden Übungen zu bearbeiten, benötigt man Zugriff auf die als Vorlage zur Verfügung gestellte Datenbanken. Dieser Wiki-Bereich ist bislang nur unter Verwendung von mariaDB mit phypMaAdmin getestet - ich versuche die Datenbanken nach und nach auch als sqlite Datenbank zur Verfügung zu stellen, so dass man die Übungen auch mit dem [[https://sqlitebrowser.org/|SQLite-Browser]] lokal bearbeiten kann. 
 + 
 +Für Schülerinnen die Zugriff auf das DMBS von info-bw.de oder dem KMG Friedrichshaben haben, gehts hier zu den Anmeldeseiten von phpMyadmin, alle anderen folgen bitte den Anweisung ihrer Lehrerinnen.
  
 <tabs> <tabs>
-  * [[#qmg|QG Mössingen]]+  * [[#infbw|info-bw Datenbank Server]]
   * [[#kmg|KMG Friedrichshafen]]   * [[#kmg|KMG Friedrichshafen]]
-  * [[#infbw|info-bw Datenbank Server]] 
-<pane id="qmg">  
-  <box 90% round #f4ffc3 #e7f5aa #e7f5aa #e7f5aa |**Aufgabe:** Anmeldung an mysql> 
-    * Öffne mit deinem Browser das phpmyadmin Interface: http://sql.q-gym.de/phpmyadmin 
-    * Infos zu Benutzern und Passwort bekommst du im Unterricht. 
-  </box> 
-</pane> 
 <pane id="kmg">  <pane id="kmg"> 
   <box 90% round #f4ffc3 #e7f5aa #e7f5aa #e7f5aa |**Aufgabe:** Anmeldung an mysql>   <box 90% round #f4ffc3 #e7f5aa #e7f5aa #e7f5aa |**Aufgabe:** Anmeldung an mysql>
-    * Öffne mit deinem Browser das phpmyadmin Interface: https://sql.kmg-fn.de+    * Öffne mit deinem Browser das phpmyadmin Interface: https://dbms.kmg-fn.de
     * Infos zu Benutzern und Passwort bekommst du im Unterricht.     * Infos zu Benutzern und Passwort bekommst du im Unterricht.
   </box>   </box>
Zeile 34: Zeile 29:
 </tabs> </tabs>
 ===== Datenbankimport ===== ===== Datenbankimport =====
 +<tabs> 
 +  * [[#dbmariadb01|MariaDB/phpMyAdmin]] 
 +  * [[#dbsqlite01|SQLite]] 
 +<pane id="dbmariadb01"> 
 <box 90% round #f4ffc3 #e7f5aa #e7f5aa #e7f5aa |**Aufgabe:** Import der Datenbank> <box 90% round #f4ffc3 #e7f5aa #e7f5aa #e7f5aa |**Aufgabe:** Import der Datenbank>
   * Lade die Datei  {{ .:adressen.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**, andernfalls scheitert der Import mit einem Fehler, da keine neuen Datenbanken angelegt werden können.   * Importiere die Datei in deine Datenbank. Du musst dabei darauf achten, dass du **in der linken Spalte zuerst deine Datenbank auswählst**, andernfalls scheitert der Import mit einem Fehler, da keine neuen Datenbanken angelegt werden können.
 </box> </box>
 +</pane>
 +<pane id="dbsqlite01"> 
 +<box 90% round #f4ffc3 #e7f5aa #e7f5aa #e7f5aa |**Aufgabe:** Import der Datenbank>
 +Lade die {{ :faecher:informatik:oberstufe:datenbanken:sql_abfrage:adressen.sqlite.db.zip |gezippte Datenbank}} auf deinen Rechner herunter und entpacke sie. Öffne anschließend die Datei ''adressen.sqlite.db'' mit dem SQLite Browser.
 +</box>
 +</pane>
 +</tabs>
  
-Du erhältst eine Tabelle''adressen'' in deiner Datenbank, in der ca. 20.000 Datensätze enthalten sind.+Die Datenbank enthält jetzt eine Tabelle ''adressen'', in der ca. 20.000 fiktive Datensätze enthalten sind.
  
-Klicke die Tabelle an und mache dich mit den gespeicherten Daten etwas vertraut.+Betrachte die Tabelle an und mache dich mit den gespeicherten Daten etwas vertraut.
  
 ===== Aufbau einer SQL Abfrage ===== ===== Aufbau einer SQL Abfrage =====
Zeile 86: Zeile 91:
 Führe die beiden Beispielabfragen auf deiner Datenbank aus. Führe die beiden Beispielabfragen auf deiner Datenbank aus.
 </box> </box>
 +
 +===== Fehlerprotokoll =====
 +
 +Du wirst zu Beginn ziemlich sicher zahlreiche falsche Eingaben machen, die zu Fehlern führen, die nicht immer direkt verständlich sind. Um etwas Struktur in deine persönlichen Fehler zu bringen, solltest du ein Fehlerprotokoll führen, so dass du erkennen kannst, wenn du ähnliche Fehler immer wieder machst.
 +
 +Du kannst die folgende Datei verwenden, um die Fehler direkt hinein zu kopieren und zu vermerken, wie du sie lösen kannst. Alternativ kannst du aber natürlich auch dein Notizprogramm verwenden.
 +
 +{{ :faecher:informatik:oberstufe:datenbanken:sql_abfrage:fehlerprotokoll.odt |}}
 +
 +{{ :faecher:informatik:oberstufe:datenbanken:sql_abfrage:2024-11-22_12-02.png |Fehlerprotokoll}}
  
 ---- ----
Zeile 94: Zeile 109:
  
   - Alle Name, Vorname und Wohnort aller Datensätze.   - Alle Name, Vorname und Wohnort aller Datensätze.
-  - Die Vor- und Nachnamen aller gespeicherten Adressen.+  - Die Vor- und Nachnamen aller Einträge.
   - Alle Postleitzahlen und Orte, deren PLZ größer oder gleich 80000 ist.   - Alle Postleitzahlen und Orte, deren PLZ größer oder gleich 80000 ist.
   - Vor- und Nachname aller Personen, die im Postleitzahlbereich 4xxxx bis 6xxxx wohnen.   - Vor- und Nachname aller Personen, die im Postleitzahlbereich 4xxxx bis 6xxxx wohnen.
Zeile 104: Zeile 119:
   - Alle Personen mit einem Faxgerät und einem Mobiltelefon, deren Nachnamen ein "y" enthält.   - Alle Personen mit einem Faxgerät und einem Mobiltelefon, deren Nachnamen ein "y" enthält.
   - Alle Personen, die jünger als 45 Jahre sind, in einem Ort wohnen der mit "A" beginnt und mehr als 3333 Bonuspunkte gesammelt haben.   - Alle Personen, die jünger als 45 Jahre sind, in einem Ort wohnen der mit "A" beginnt und mehr als 3333 Bonuspunkte gesammelt haben.
 +
 +[[.loesungen|Lösungen]]
 +
  
 ---- ----
Zeile 124: Zeile 142:
   - 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 Rechnungen haben und kein Guthaben auf ihrem Konto.   - Die Anzahl der Personen, die mehr als 19 offene Rechnungen haben und kein Guthaben auf ihrem Konto.
-  - 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+  - 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
   - Alle Postleitzahlen in der Datenbank   - Alle Postleitzahlen in der Datenbank
   - Alle Geburtsdaten, die in der Datenbank vorkommen, ohne die Datensätze, bei deinen kein Geburtsdatum angegeben ist   - Alle Geburtsdaten, die in der Datenbank vorkommen, ohne die Datensätze, bei deinen kein Geburtsdatum angegeben ist
-  - Den Datensatz mit dem höchsten Kontostand +  - Den 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 Bonusprogramm teilnehmen. 
-  - Die durchschnittliche Zahl der offenen Rechungen aller Personen, die jünger als 35 Jahre sind und nicht am Bonusprogramm teilnehmen.+  - Die durchschnittliche Zahl der offenen Rechnungen aller Personen, die jünger als 35 Jahre sind und nicht am Bonusprogramm teilnehmen.
  
 ---- ----
Zeile 147: Zeile 165:
  
 ++++ Lösungshinweis I | ++++ Lösungshinweis I |
-Man muss den Inhalt einer Tabellenzelle aufteilen. Das geht zum Beispiel mit SELECT SUBSTRING_INDEX, INfos dazu z.B. dort:+Man muss den Inhalt einer Tabellenzelle aufteilen. Das geht zum Beispiel mit SELECT SUBSTRING_INDEX, Infos dazu z.B. dort:
 https://www.w3schools.com/sql/func_mysql_substring_index.asp https://www.w3schools.com/sql/func_mysql_substring_index.asp
  
  • faecher/informatik/oberstufe/datenbanken/sql_abfrage/start.1666342347.txt.gz
  • Zuletzt geändert: 21.10.2022 08:52
  • von Frank Schiebel