Projekt:2021/InstaHub2

Aus Informatik-Box
Version vom 3. Mai 2022, 22:39 Uhr von Jneug (Diskussion | Beiträge) (→‎Tabellen verknüpfen)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Zur Navigation springen Zur Suche springen

Seite zum Projekt InstaHub des Informatik GK im Schuljahr 2021/22.

Lerntagebuch

Icon Heft.png
Arbeitsauftrag
  1. Starte das Programm Fork auf dem Rechner und vergleiche die Oberfläche mit dem bekannten GitHub Desktop. Als Hilfe kannst du dir erneut den Lernpfad:Einführung in Git ansehen. Er wurde auf Fork angepasst.
  2. Erstelle in Gitea einen Fork des Git-Repositories IF-GK-2021/lerntagebuch. Klone dann deinen neuen Fork mithilfe des Programms Fork.
  3. Erstelle dann einen ersten Eintrag im Lerntagebuch, indem du die Vorlage _Vorlage.md kopierst und bearbeitest. Bearbeite auch die Datei README.md in deinem Lerntagebuch, um auf deinen ersten Eintrag zu verweisen.
  4. Commite die Änderungen dann in dein Repository.


Einführung in SQL

Instahub ERD.png

Lernpfad SQL-Abfragen

Icon Heft.png
Arbeitsauftrag

Bearbeite den Lernpfad SQL-Abfragen. Erstelle am Ende der Stunde einen Eintrag im Lerntagebuch, um deine Fortschritte zu dokumentieren.


Bedingungen

Icon Heft.png
Arbeitsauftrag

Mittels der WHERE-Klausel lassen sich Datensätze gezielt auf bestimmte Bedingungen einschränken. Jedes Datenfeld hat einen festgelegten Datentyp (im Wesentlichen Zahl, Text und Datum). Je nach Datentyp lassen sich unterschiedliche Bedingungen nutzen. Bedingungen sind entweder TRUE oder FALSE. Bedingungen können mit AND OR verknüpft, oder mit NOT negiert werden.

Lies im Wikibook Einführung in SQL den Abschnitt WHERE-Klausel im Detail. Studiere vor allem die Vergleichsoperatoren und die Schlüsselwörter BETWEEN, LIKE und IS NULL.

Entwirf dann Abfragen für folgende Datensätze:

  1. Alle Kommentare, die zwischen 2018-09-21 07:57:19 und 2018-09-21 09:57:19 erstellt wurden.
  2. Zehn Photos, deren Beschreibung #sonne, #strand oder #meer enthalten.
  3. Alle Photos, deren URL animals enthält.
  4. Alle Photos, deren URL nicht animals enthält.
  5. Alle Nutzer, die aus Frankfurt oder Berlin kommen und zwischen 150 und 168 Zentimeter groß sind.
  6. Alle Nutzer, die keine Größe eingetragen haben.


Icon Heft.png
Arbeitsauftrag

Eine mächtige Bedingung ist das IN Schlüsselwort. Mit ihm kann ein Wert mit einer ganzen Liste von Werten verglichen werden. Der Operator prüft also, ob ein Wert in einer Liste vorkommt, oder nicht.

Betrachte beispielsweise folgende Abfragen und vergleiche sie miteinander. Was fragen sie ab und wie ist der IN Befehl aufgebaut?

  • SELECT * FROM users WHERE city = "Frankfurt" OR city = "Berlin" OR city = "Leipzig" OR city = "München"
  • SELECT * FROM users WHERE city IN ("Frankfurt","Berlin","Leipzig","München")
  • SELECT FROM users WHERE city NOT IN ("Frankfurt","Berlin","Leipzig","München")
Icon Info.png

Ergänze neue Befehle auf in deiner Befehlsübersicht.

Funktionen

Icon Heft.png
Arbeitsauftrag

SQL bietet auch Möglichkeiten, die abgefragten Datensätze durch die Anwendung von Rechenoperationen und Funktionen zu transformieren.

Um etwa die Größe der Nutzer nicht in Zentimetern, sondern in Millimetern abzufragen, könnte die Abfrage so lauten:

SELECT username,centimeters*10 FROM users

Einen Überblick der wichtigsten Funktionen gibt es in der Befehlsreferenz SQL. Analysiere mit deren Hilfe folgende Abfragen und notiere ihre Bedeutung, ohne sie vorher auszuführen. Prüfe dann deine Vermutung in InstaHub.

  1. SELECT COUNT(*) FROM comments
  2. SELECT MIN(centimeters), MAX(centimeters),AVG(centimeters),ROUND(AVG(centimeters),2),ROUND(AVG(centimeters)),SUM(centimeters) FROM users
  3. SELECT centimeters+100,4+3,centimeters*2,id%2 FROM users
  4. SELECT UPPER(username),CONCAT(city,", ",country) FROM users
  5. SELECT CONCAT(name," aus ", city, " (",UPPER(LEFT(country,3)),")") FROM users
  6. SELECT DAY(created_at),MONTH(created_at),YEAR(created_at) FROM users ORDER BY created_at DESC LIMIT 1
  7. SELECT DAY(created_at),MONTH(created_at),YEAR(created_at) FROM users LIMIT 1 ORDER BY created_at DESC


Icon Heft.png
Arbeitsauftrag

Mit der Funktion RAND() können Zufallszahlen generiert werden.

SELECT RAND()

In der Regel wird sie nur selten benötigt, aber für einen Fall ist sie recht nützlich, denn man kann sie als Argument für den ORDER BY Befehl benutzen:

SELECT username FROM users ORDER BY RAND()

Führe die Abfrage mehrmals aus und beobachte die Ergebnisse.

Icon Info.png

Ergänze neue Befehle auf in deiner Befehlsübersicht.

Datenauswertung

Icon Heft.png
Arbeitsauftrag

Bearbeite den Lernpfad SQL: Datenauswertung.

Icon Info.png

Erstelle einen Eintrag im Lerntagebuch.

SQL-Island

Icon Heft.png
Arbeitsauftrag

SQL-Island ist ein Textadventure, das nur mit SQL gespielt wird. Mit deinem bisherigen Wissen über SQL kannst du SQL-Island durchspielen. Falls du stecken bleibst, findest du die Lösungen unter https://link.ngb.schule/sql-island-loesung.

Icon Warning.png

Falls du SQL-Island schon gespielt hast, kannst du dich am SQL Bankraub oder am SQL Kurs der Datamonkeys ausprobieren (wähle bei letzterem direkt die "Junior Analyst path" Lektionen aus).

Dokumentiere beim Arbeiten deine Lösungen im Lerntagebuch, dann kann daraus später eine Musterlösung wie für SQL-Island erstellt werden.

Tabellen verknüpfen

Icon Heft.png
Arbeitsauftrag
  1. Bearbeite den Lernpfad SQL: Tabellen verknüpfen.
  2. Recherchiere zu den verschiedenen JOIN-Typen und fülle das Arbeitsblatt dazu aus.
Icon Info.png

Erstelle einen Eintrag im Lerntagebuch.

Abfragen verknüpfen

Icon Heft.png
Arbeitsauftrag

Bearbeite den Lernpfad SQL: Abfragen verknüpfen.

Icon Info.png

Erstelle einen Eintrag im Lerntagebuch.

Die CRUD-Operationen

Icon Heft.png
Arbeitsauftrag

Bearbeite den SQL: INSERT, DELETE und UPDATE.

Icon Info.png

Erstelle einen Eintrag im Lerntagebuch.

Fortgeschrittene Aufgaben

Icon Warning.png

Falls du aus dem letzten Jahr schon die Grundlagen der SQL kennst, dann kannst du dich mit diesen Aufgaben befassen.

Icon Heft.png
Arbeitsauftrag
  1. Gehe die Seiten Einfache SQL-Abfragen und SQL-Abfragen mit einer Tabelle durch, um dein Wissen über SQL-Abfragen aufzufrischen. Befasse dich vor allem noch einmal mit logischen Verknüpfungen und Aggregation von Daten. Eine Übersicht der wichtigsten SQL-Befehle findest du hier im Wiki unter Befehlsreferenz SQL oder hier.
  2. Lies dich in den Aufbau der Tabelle ads ein und was ihre Funktion in InstaHub ist. Fange dazu auf der Seite Personalisierte Werbung in der InstaHub Dokumentation an.
  3. Probiere die Beispiele unter https://wi-wissen.github.io/instahub-doc-de/#/exercices?id=tabelle-ads-werbung aus.
  4. Erstelle selber eine Werbeanzeige in InstaHub. Überlege dir eine Zielgruppe für die Anzeige und erstelle dann eine SQL-Abfrage, die diese Zielgruppe möglichst genau trifft.