MySQL Lernumgebung

Diese Oberfläche ist zum Lernen gedacht. Die Datenbankverbindung läuft intern über Docker, du kannst dich hier also direkt auf SQL konzentrieren. Ergebnis und Aufgaben sind bewusst sofort sichtbar.

Datenbank: academydb · Host intern: mysql · Port extern: 85

Ergebnis

Das Resultat deiner letzten Abfrage erscheint hier direkt ganz oben.

Noch keine Abfrage ausgeführt
Starte mit einer SELECT-Abfrage oder nutze eine der Beispielabfragen unten.

SQL Eingabe

Du kannst hier SELECT, JOIN, GROUP BY, INSERT, UPDATE und DELETE ausprobieren.

Erklärung zur aktuellen Abfrage

SELECT liest Daten aus Tabellen aus.

Schnelle Beispiele

Aufgaben

Arbeite sie nacheinander ab. Die Lösung ist erst sichtbar, wenn du sie bewusst aufklappst.

1. Alle Studenten anzeigen

Liste alle Datensätze aus der Tabelle students auf.

Hinweis

Nutze SELECT * FROM students;

Lösung anzeigen
Beispiellösung

SELECT * FROM students;

2. Nur aktive Einschreibungen sehen

Zeige nur Einträge aus enrollments, deren status 'aktiv' ist.

Hinweis

Verwende WHERE auf der Spalte status.

Lösung anzeigen
Beispiellösung

SELECT * FROM enrollments WHERE status = 'aktiv';

3. Studenten alphabetisch sortieren

Gib alle Studenten nach Nachnamen sortiert aus.

Hinweis

ORDER BY last_name ASC

Lösung anzeigen
Beispiellösung

SELECT * FROM students ORDER BY last_name ASC;

4. Kurse mit Dozenten anzeigen

Verbinde courses mit instructors.

Hinweis

JOIN über instructor_id

Lösung anzeigen
Beispiellösung

SELECT c.title, i.first_name, i.last_name FROM courses c JOIN instructors i ON c.instructor_id = i.id;

5. Studenten mit ihren Kursen anzeigen

Verbinde students, enrollments und courses.

Hinweis

Du brauchst zwei JOINs.

Lösung anzeigen
Beispiellösung

SELECT s.first_name, s.last_name, c.title, e.status FROM enrollments e JOIN students s ON e.student_id = s.id JOIN courses c ON e.course_id = c.id;

6. Durchschnittsnote je Kurs

Berechne die durchschnittliche grade pro Kurs.

Hinweis

AVG(grade) und GROUP BY

Lösung anzeigen
Beispiellösung

SELECT c.title, ROUND(AVG(e.grade), 2) AS avg_grade FROM enrollments e JOIN courses c ON e.course_id = c.id GROUP BY c.title;

7. Kurse mit mehr als 2 aktiven Teilnehmern

Filtere gruppierte Ergebnisse mit HAVING.

Hinweis

COUNT(*) und HAVING COUNT(*) > 2

Lösung anzeigen
Beispiellösung

SELECT c.title, COUNT(*) AS active_students FROM enrollments e JOIN courses c ON e.course_id = c.id WHERE e.status = 'aktiv' GROUP BY c.title HAVING COUNT(*) > 2;