Dieses Modul kostenlos auf echter VM üben
Kostenlos registrierenSQL-Grundlagen
SELECT, WHERE, INSERT, JOIN, GROUP BY. Du schreibst 5 SQL-Statements in eine .sql-Datei. Schema gibt's in der Aufgabe.
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ülernoten(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. Alle Schüler abfragen
Begriff:
SELECT.SELECT * FROM tabelleholt 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.sqlDu siehst sechs Zeilen wie
1|Anna|7a.Kontrolle:
alle.sqlliefert alle 6 Schüler mit allen Spalten (id,name,klasse). Der Prüfer führt deine Datei selbst gegen die Datenbank aus.2. Schüler der Klasse 7a
Begriff:
WHERE. MitWHEREfilterst du Zeilen nach einer Bedingung. Hole nur die Schüler der Klasse7a:echo "SELECT * FROM schueler WHERE klasse = '7a';" > /home/student/sql/klasse-7a.sql sqlite3 ~/schule.db < /home/student/sql/klasse-7a.sqlTextwerte stehen in einfachen Anführungszeichen (
'7a').Kontrolle:
klasse-7a.sqlliefert genau die drei Schüler der 7a — mit allen Spalten.3. Einen neuen Schüler anlegen
Begriff:
INSERT.INSERT INTOfügt einen neuen Datensatz ein: erst die Spalten, dann die Werte. Dieidvergibt 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.sqlimmer auf einer frischen Kopie aus.Kontrolle: Nach
neu.sqlstehen inschuelerdie 6 bisherigen Schüler und zusätzlichLisaaus der7b.4. Noten mit Schüler-Name
Begriff:
JOIN. EinJOINverbindet zwei Tabellen über eine gemeinsame Spalte — innoten.schueler_idsteht dieidausschueler. 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.sqlKontrolle:
noten-mit-namen.sqlliefert alle 12 Noten, jeweils mitname,fachundnote(in dieser Reihenfolge).5. Durchschnittsnote pro Fach
Begriff: Aggregation (
AVG+GROUP BY). Aggregat-Funktionen fassen mehrere Zeilen zu einem Wert zusammen —AVG()berechnet den Durchschnitt.GROUP BY fachmacht 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.sqlKontrolle:
schnitt.sqlliefert je Fach eine Zeile mit dem Notendurchschnitt — fürDeutsch,EnglischundMathe.
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 startenLab-Inhalte unter CC BY 4.0 – frei nutzbar mit Namensnennung (© TechLogia).
