Zum Inhalt springen
Techlogia — KI- und Web-Dienstleister Berlin

Dieses Modul kostenlos auf echter VM üben

Kostenlos registrieren
 Alle Kurse
Frei lesbar – ohne Anmeldung

SQL-Grundlagen

SELECT, WHERE, INSERT, JOIN, GROUP BY. Du schreibst 5 SQL-Statements in eine .sql-Datei. Schema gibt's in der Aufgabe.

Dauer: 30 Min.Niveau: EinstiegAufgaben: 5

Deine ersten SQL-Queries

SQL-Grundlagen: deine ersten Abfragen

SQL (Structured Query Language) ist die Sprache, mit der man Datenbanken abfragt und verändert. Daten liegen in Tabellen (Zeilen = Datensätze, Spalten = Felder). Fast jede Anwendung speichert ihre Daten in einer SQL-Datenbank.

Deine Datenbank

Auf deiner VM liegt eine echte SQLite-Datenbank ~/schule.db mit zwei Tabellen:

  • schueler (id, name, klasse) — 6 Schülerinnen und Schüler
  • noten (id, schueler_id, fach, note) — 12 Noten

Schau sie dir an: sqlite3 ~/schule.db öffnet die Datenbank, .tables listet die Tabellen, .schema schueler zeigt die Spalten, .quit beendet. (Kurz nach dem Start installiert die VM sqlite3 noch — meldet die Konsole „command not found“, warte einen Moment.)

Wichtige Befehle

  • SELECT: Daten abfragen („zeige mir …“).
  • WHERE: filtert Zeilen nach einer Bedingung.
  • INSERT: fügt einen neuen Datensatz ein.
  • JOIN: verbindet zwei Tabellen über eine gemeinsame Spalte.
  • GROUP BY + AVG(): gruppiert Zeilen und berechnet z. B. Durchschnitte.

Du schreibst jede Abfrage in eine eigene Datei unter /home/student/sql/ und führst sie aus mit sqlite3 ~/schule.db < ~/sql/datei.sql — du siehst sofort das echte Ergebnis.

So prüft der Prüfer

Er führt deine Datei gegen eine frische Kopie der Datenbank aus und vergleicht das Ergebnis. Deine Experimente in ~/schule.db stören also nicht. Datenbank zerschossen? cp /var/lib/lab/sql/schule.db ~/schule.db stellt sie wieder her.

Dein Ziel

Du schreibst fünf Abfragen — von einfacher Auswahl bis zur Auswertung über mehrere Tabellen.

Aufgaben

  1. 1. Alle Schüler abfragen

    Begriff: SELECT. SELECT * FROM tabelle holt alle Spalten (*) aller Zeilen einer Tabelle. Frage alle Schüler ab:

    mkdir -p /home/student/sql
    echo "SELECT * FROM schueler;" > /home/student/sql/alle.sql
    sqlite3 ~/schule.db < /home/student/sql/alle.sql

    Du siehst sechs Zeilen wie 1|Anna|7a.

    Kontrolle: alle.sql liefert alle 6 Schüler mit allen Spalten (id, name, klasse). Der Prüfer führt deine Datei selbst gegen die Datenbank aus.

  2. 2. Schüler der Klasse 7a

    Begriff: WHERE. Mit WHERE filterst du Zeilen nach einer Bedingung. Hole nur die Schüler der Klasse 7a:

    echo "SELECT * FROM schueler WHERE klasse = '7a';" > /home/student/sql/klasse-7a.sql
    sqlite3 ~/schule.db < /home/student/sql/klasse-7a.sql

    Textwerte stehen in einfachen Anführungszeichen ('7a').

    Kontrolle: klasse-7a.sql liefert genau die drei Schüler der 7a — mit allen Spalten.

  3. 3. Einen neuen Schüler anlegen

    Begriff: INSERT. INSERT INTO fügt einen neuen Datensatz ein: erst die Spalten, dann die Werte. Die id vergibt die Datenbank selbst. Lege die neue Schülerin Lisa aus der 7b an und kontrolliere das Ergebnis:

    echo "INSERT INTO schueler (name, klasse) VALUES ('Lisa', '7b');" > /home/student/sql/neu.sql
    sqlite3 ~/schule.db < /home/student/sql/neu.sql
    sqlite3 ~/schule.db "SELECT * FROM schueler;"

    Führst du die Datei zweimal aus, steht Lisa zweimal in deiner Datenbank — kein Problem: Der Prüfer führt neu.sql immer auf einer frischen Kopie aus.

    Kontrolle: Nach neu.sql stehen in schueler die 6 bisherigen Schüler und zusätzlich Lisa aus der 7b.

  4. 4. Noten mit Schüler-Name

    Begriff: JOIN. Ein JOIN verbindet zwei Tabellen über eine gemeinsame Spalte — in noten.schueler_id steht die id aus schueler. So zeigst du Noten mit dem Namen an:

    echo "SELECT schueler.name, noten.fach, noten.note FROM schueler JOIN noten ON schueler.id = noten.schueler_id;" > /home/student/sql/noten-mit-namen.sql
    sqlite3 ~/schule.db < /home/student/sql/noten-mit-namen.sql

    Kontrolle: noten-mit-namen.sql liefert alle 12 Noten, jeweils mit name, fach und note (in dieser Reihenfolge).

  5. 5. Durchschnittsnote pro Fach

    Begriff: Aggregation (AVG + GROUP BY). Aggregat-Funktionen fassen mehrere Zeilen zu einem Wert zusammen — AVG() berechnet den Durchschnitt. GROUP BY fach macht das pro Fach:

    echo "SELECT fach, AVG(note) FROM noten GROUP BY fach;" > /home/student/sql/schnitt.sql
    sqlite3 ~/schule.db < /home/student/sql/schnitt.sql

    Kontrolle: schnitt.sql liefert je Fach eine Zeile mit dem Notendurchschnitt — für Deutsch, Englisch und Mathe.

Wissens-Check: SQL-Grundlagen

Ohne VM, ca. 3 Minuten. Du rufst ab, was du im Modul geübt hast – falsche Antworten kommen am Ende noch einmal.

Verwandte Kurse

Jetzt selbst üben

Lesen ist gut – selbst machen ist besser. Übe dieses Modul an einer echten Linux-VM, direkt im Browser. Ein kostenloses Konto genügt.

Kostenlos starten

Lab-Inhalte unter CC BY 4.0 – frei nutzbar mit Namensnennung (© TechLogia).

Wie gefällt Ihnen diese Seite?