SQL Einführung

SQLite ist ein einfaches Datenbank-Format in einer einzigen Datei.

Aufgabe 1: SQLite kennenlernen

  1. SQLiteStudio ist ein kostenloses open Source Programm, das wir im Rahmen der Einrichtung auf Ihrem Gerät installiert haben. Falls Sie es nicht finden auf Ihrem Laptop, finden Sie hier den nötigen Link und die Anleitung zur Installation.
Falls Ihr SQLiteStudio nicht auf Deutsch eingestellt ist…

Falls die Sprache in SQLiteStudio bei Ihnen nicht richtig eingestellt ist, können Sie über die F10-Taste (je nach Laptop-Einstellung «Fn»+«F10») oder das Menü «Tools» → «Open configuration dialog» unter «Look & Feel» die Sprache (z.B. von «American English») auf «Deutsch» umstellen:

  1. Starten Sie SQLiteStudio auf Ihrem Laptop.
  2. Erstellen Sie eine Neue Datenbank
    Menü: Datenbank → Datenbank hinzufügen → Neue Datei benennen (und gut überlegen, in welchem Verzeichnis Sie das ablegen! Ideal: OneDrive!). Der Name muss auf «.db» enden (z.B. «klasse.db»)→ OK
  3. Hinzugefügte Datenbank (z.B. «klasse») in der Liste «Datenbanken» auf der linken Seite anklicken.
  4. Menü Datenbank → «Verbindung mit der Datenbank» wählen
  5. Importieren Sie die CSV Datei, die Sie über den IN Teams Chat erhalten:
    Menü: Werkzeuge → Importieren → Tabelle benennen: «Alle» → Next → CSV auswählen, «Erste Zeile repräsentiert CSV-Spaltennamen» anklicken, «Column Separator» auf «Semikolon (;)» setzen, sonst alle Einstellungen lassen → Finish
  6. Schauen Sie sich die Daten an:
    im linken Bereich finden Sie unter «Tabellen» nun den Eintrag «Alle». Doppelklick darauf, und dann können Sie im rechten Bereich den Reiter (Tab) «Daten» anklicken. Was erkennen Sie?
  7. Fügen Sie ein neues Datenfeld hinzu: «Bemerkung»
    Immer noch in der Tabelle «Alle», klicken Sie auf den Reiter «Struktur». Klicken Sie auf den Knopf «Spalte hinzufügen», setzen Sie den Spaltennamen, OK, und dann bestätigen Sie die Anpassung mit dem grünen Häkchen oben links.
  8. Wechseln Sie zurück zum Reiter «Daten», fügen Sie mit Doppelklick bei einigen Kolleginnen oder Kollegen eine Bemerkung ein, und bestätigen Sie dann auch da die Ergänzungen mit dem grünen Häkchen
  9. Schliessen sie die Datenbank mit
    Menü: Datenbank → Verbindung zur Datenbank trennen

Aufgabe 2: SQL Abfragen

Verwenden Sie die in Aufgabe 1 erstellte Datenbank in SQLiteStudio, um folgende Aufgaben zu lösen:

So erreichen Sie den SQL-Editor!
  1. Wählen Sie alles aus:
    select * from Alle
  2. Wählen Sie nur alle Vornamen aus:
    select Vorname from Alle
  3. Erstellen Sie eine Liste mit den ganzen Namen:
    select Vorname || " " || Name as Wer from Alle
    Hinweis: mit zwei | (Tasten «Alt Gr» und «7» in Windows) können Texte zusammengehängt werden (wie «+» in Python!)
  4. Versuchen Sie nun, eine Liste zu erstellen, wo der ganze Name gefolgt ist von einem Komma und dem Wohnort.
    1. Wie lautet der SQL Befehl?
    2. Wie sieht das Resultat aus?
  5. Erstellen Sie eine Liste aller Orte aus der Tabelle.
    1. Wie lautet der SQL Befehl?
    2. Wie oft kommt der gleiche Ort vor?
  6. Verwenden Sie denselben Befehl, fügen Sie aber nach dem «select» das Wort «distinct» ein. Was geschieht?
  1. Antworten:
    • select Vorname || " " || Name || ", " || Ort as Wer from Alle;
      (siehe Resultat unterhalb SQL)
  2. Antworten:
    • Select Ort from Alle
    • Oft mehrmals!
  3. Antwort: Jeder Ort kommt nur noch ein Mal vor

Aufgabe 3: Mehr Tabellen

Weiterhin mit derselben bisherigen Datenbank, welche die Tabelle «Alle» enthält:

  1. Kreieren Sie mit dem folgenden SQL Befehl eine neue Tabelle namens «Gemeinden»:
    create table Gemeinden as
    select distinct PLZ, Ort from Alle
  2. Fügen Sie der neuen Tabelle eine Spalte «Bevölkerung» mit Datentyp «INTEGER» hinzu und geben Sie für alle Gemeinden die EinwohnerInnenZahl ein. Sie sehen diese z.B. hier.
  3. Jetzt können wir die SuS Liste mit allen Bevölkerungszahlen anzeigen:
    select Vorname, Gemeinden.Ort, Bevölkerung
    from Alle, Gemeinden
    where Alle.Ort = Gemeinden.Ort
  4. Und wir können Daten miteinander verrechnen:
    select
    count(*) as Anzahl, Gemeinden.Ort, Bevölkerung, (count(*)*1000.0/Bevölkerung) as Promille
    from Alle, Gemeinden
    where Alle.Ort = Gemeinden.Ort
    group by Alle.Ort
    order by Anzahl DESC
  5. Verdoppeln Sie eine Bevölkerungszahl in der «Gemeinden» Tabelle, und prüfen Sie, wie dies die Resultate der obigen SQL Befehle verändert. Was ändert sich?

Nach dieser Einführung sind Sie bereit für die Erforschung einer grösseren Datenbank → miniterra Datenbank erforschen.