Zurück zur Artikelliste Artikel
10 Leseminuten

SQL-Praxis für Studenten: 11 grundlegende SQL-Übungen mit Lösungen

Aufruf an alle Studenten! Sind Sie neugierig auf SQL? Möchten Sie Ihre SQL-Kenntnisse erlernen oder verbessern? Dieser Artikel enthält 11 SQL-Übungsaufgaben mit detaillierten Lösungen.

Haben Sie schon einmal gehört, dass "Übung den Meister macht"? Wahrscheinlich haben Sie das - deshalb suchen Sie nach Ressourcen für SQL-Übungen. Wenn Sie starke Fähigkeiten entwickeln oder ein Experte in einem bestimmten Bereich werden wollen, müssen Sie üben.

Wie Rebecca McKeown in ihrem hervorragenden Artikel Learning SQL? 12 Ways to Practice SQL Online: "Alles Theorie und keine Praxis macht Sie zu einem frustrierten SQL-Benutzer". Und sie hat Recht! Jedes Mal, wenn Sie ein neues Konzept lernen, müssen Sie es sofort anwenden, indem Sie es üben. Das ist der Sinn der in diesem Artikel vorgestellten Übungen.

Die meisten der folgenden Übungen stammen aus unserem interaktiven Kurs SQL-Praxis: University. Dieser interaktive Online-Kurs richtet sich an Personen, die SQL-Kenntnisse haben und nach praktischen Übungen suchen, die einzelne Tabellenabfragen, Joins, Sortierung, Gruppierung, Aggregation und mehr abdecken. Er ist Teil unseres SQL-Praxis Track, der weitere SQL-Übungskurse für Anfänger enthält.

11 Grundlegende SQL-Praxisübungen mit Lösungen

Überblick über eine interaktive Übung auf LearnSQL.de.

Aber vielleicht möchten Sie sich noch nicht auf einen kompletten Kurs festlegen. Das ist kein Problem! Diese 11 Übungen helfen Ihnen, Ihre SQL-Kenntnisse zu üben und zu verbessern - ohne Kosten und ohne Verpflichtung! Schnallen Sie sich an, und los geht's!

Verbessern Sie Ihre SQL-Praxis

Unsere SQL-Übungen sind perfekt für Studenten geeignet: Ich werde das Universitätsmodell verwenden, mit dem Sie vertraut sein sollten! Hier sind die Tabellen, die wir während der Übungen verwenden werden:

  • student enthält die Basisdaten der Studenten: Vorname, Nachname, E-Mail, Geburtsdatum und Datum des Studienbeginns.
  • lecturer enthält Grunddaten zu den Dozenten: Vorname, Nachname, Abschluss und E-Mail.
  • academic_semester enthält grundlegende Informationen zu den akademischen Semestern: Kalenderjahr, Semester, Anfangs- und Enddatum.
  • course_edition ist eine Tabelle, die zur Verknüpfung der drei anderen Tabellen dient: course (die wir in diesem Artikel nicht verwenden werden), academic_semesterund lecturer.
11 Grundlegende SQL-Praxisübungen mit Lösungen

Wenn Sie den Umgang mit der vollständigen Universitätsdatenbank üben möchten, besuchen Sie den Kurs Grundlagen SQL-Praxis: Universität. (Wir haben ein Sonderangebot und Sonderpreise für Studenten und Lehrer! Wenn Sie interessiert sind, schauen Sie sich unser Angebot für SQL-Kurse für Studenten an).

11 grundlegende SQL-Praxis Übungen

In diesem Abschnitt stelle ich 11 SQL-Übungen mit Lösungen zur Verfügung. Der Schwierigkeitsgrad wird schrittweise erhöht: Ich werde mit sehr einfachen und allgemeinen Übungen beginnen und nach und nach neue SQL-Konzepte einführen.

Sind Sie bereit, Ihre SQL-Praxis zu verbessern?

Übung 1: Alle Schüler auflisten

Übung

Wählen Sie alle Daten der Schüler in der Datenbank aus.

Lösung

SELECT * 
FROM student;

Erläuterung

Wir wollen die Daten der Studenten aus der Datenbank abrufen. Dazu müssen wir die SELECT Klausel und die FROM Klausel auf die student Tabelle verwenden. Das Sternchen-Symbol (*) wird hier als Abkürzung verwendet, um die Namen aller Spalten in der Tabelle darzustellen students. Beachten Sie, dass alle SQL-Anweisungen mit dem Semikolonzeichen (;) enden.

Übung 2: Auflisten aller Namen von Schülern

Übung

Wählen Sie den Vor- und Nachnamen aller Schüler aus.

Lösung

SELECT first_name, last_name
FROM student;

Erläuterung

Diesmal wollen wir Teilinformationen aus der Datenbank abrufen. Das geht ganz einfach, indem man die Namen der Spalten angibt, die man abrufen möchte - in diesem Fall first_name und last_name. Die Namen der Spalten werden durch ein Komma getrennt, gefolgt von der FROM-Anweisung mit dem Tabellennamen (student).

Übung 3: Einen bestimmten Dozenten nach ID auswählen

Übung

Wählen Sie die E-Mail für den Dozenten mit der ID 5 aus der Datenbank aus.

Lösung

SELECT email
FROM lecturer
WHERE id = 5;

Erläuterung

Diesmal wollen wir Informationen über Dozenten aus der Datenbank abrufen. Dazu müssen wir die SELECT Klausel und die FROM Klausel in der Tabelle lecturer Tabelle verwenden.

In einer Datenbank hat jede Tabelle normalerweise eine Primärschlüsselspalte (im Allgemeinen ID genannt), die einen eindeutigen Bezeichner für jeden Eintrag darstellt. In dieser Übung rufen wir nur einen Dozenten (d. h. eine Zeile) aus der Tabelle lecturer Tabelle ab. Dies geschieht mit der Klausel WHERE mit der Bedingung id=5.

In diesem Fall verwenden wir den Vergleichsoperator "gleich" (=). Wir könnten auch eine Bedingung mit anderen Vergleichsoperatoren schreiben, z. B. >, <, >=, <=, oder <> (nicht gleich).

Übung 4: Auswählen von Schülern nach Nachname

Übung

Wählen Sie alle Daten für alle Schüler aus, deren Nachname Durrand ist.

Lösung

SELECT *
FROM student
WHERE last_name = 'Durrand';

Erläuterung

Zurück zur student Tabelle! In dieser Übung wollen wir alle Schüler abrufen, deren Nachname Durrand lautet. Die Spalte last_name erlaubt doppelte Werte; wenn wir also die Klausel WHERE verwenden, können mehrere Zeilen zurückgegeben werden.

Beachten Sie, dass in SQL einfache Anführungszeichen (') verwendet werden, um Textwerte (‘Durrand’) einzuschließen.

Übung 5: Auswählen von Schülern, deren Nachname mit D beginnt

Übung

Wählen Sie die Vor- und Nachnamen der Schüler aus, deren Nachname mit dem Buchstaben D beginnt.

Lösung

SELECT first_name, last_name
FROM student
WHERE last_name LIKE 'D%';

Erläuterung

In dieser Übung wird nicht nach Schülern mit einem genauen Nachnamen gesucht, sondern nach Schülern, deren Nachname mit einem bestimmten Buchstaben (D) beginnt. Der Vergleichsoperator equal (=) kann in dieser Übung nicht verwendet werden, da wir nicht nach einer exakten Übereinstimmung suchen. Zum Glück gibt es in SQL den Operator LIKE, mit dem wir nach einem bestimmten Muster suchen können.

Die Verwendung der WHERE-Klausel in Kombination mit dem LIKE -Operator für die Spalte last_name erfüllt den Zweck! Das Prozentzeichen (%) wird verwendet, um null, ein oder mehrere Zeichen darzustellen. Daher bedeutet ‘D%’ hier "Ein Name, der mit D beginnt, gefolgt von null, einem oder vielen weiteren Zeichen".

Haben Ihnen die Übungen in diesem Artikel gefallen? Weitere finden Sie in dem ausgezeichneten Artikel 10 Beginner SQL-Praxis Exercises With Solutions von meinem Freund Tihomir Babic.

Übung 6: Mehrere Bedingungen verwenden, um ein akademisches Semester auszuwählen

Übung

Wählen Sie alle Daten für akademische Semester aus, bei denen diese beiden Bedingungen erfüllt sind: Das Jahr ist 2020 und das Semester ist Frühling.

Lösung

SELECT *
FROM academic_semester
WHERE calendar_year = 2020
  AND term = 'spring';

Erläuterung

Diesmal werden wir gebeten, Informationen für akademische Semester abzurufen. Um dies zu erreichen, führen wir eine SELECT Klausel auf die academic_semester Tabelle ausführen, um dies zu erreichen. Im Vergleich zu den vorherigen Übungen ist etwas neu: Wir haben 2 Bedingungen!

Sie fragen sich vielleicht, ob mehrere Bedingungen in SQL erlaubt sind; ja, das sind sie! Das Einzige, was Sie tun müssen, ist, einen logischen Operator in Kombination mit der WHERE Klausel zu verwenden. SQL bietet drei logische Operatoren: AND, OR, und NOT. In dieser Übung wollen wir, dass die beiden Bedingungen erfüllt sind, also verwenden wir den logischen Operator AND.

Beachten Sie, dass die Spalte calendar_year ein Integer-Typ ist, während der Begriff ein String ist. Deshalb verwenden wir bei der Suche nach 2020 in calendar_year keine Anführungszeichen, während wir bei der Suche nach "Frühling" einfache Anführungszeichen verwenden.

Übung 7: Schüler nach Nachnamen sortieren

Übung

Wählen Sie den Nachnamen und das Geburtsdatum von Schülern, die im Jahr 2003 oder später geboren sind, und sortieren Sie sie nach dem Nachnamen in absteigender Reihenfolge (Z bis A).

Lösung

SELECT last_name, birth_date
FROM student
WHERE birth_date >= '2003-01-01'
ORDER BY last_name DESC;

Erläuterung

In dieser Übung suchen wir alle Schüler, die am oder nach dem 1. Januar 2003 geboren sind. Daher wird unser Filter auf die Spalte birth_date in der Tabelle student Tabelle.

Wenn Sie sich das Datenbankdiagramm am Anfang dieses Artikels noch einmal ansehen, werden Sie feststellen, dass die Spalte birth_date einen Datentyp hat.

In SQL werden Datumsangaben in der folgenden Reihenfolge gespeichert: Jahr, Monat und Tag. Wir nennen dies das Format yyyy-mm-dd. Beispielsweise würde der 10. Januar 2023 in einer Datenbank als 2023-01-10 gespeichert.

SQL verwendet auch einfache Anführungszeichen, um Datumsangaben einzuschließen (der 10. Januar 2023 wird als ‘2023-01-10’ geschrieben), und Vergleiche sind bei Datumsangaben zulässig. Um die von uns benötigte Abfrage zu erstellen, verwenden wir daher die WHERE-Klausel mit dem Vergleichssymbol größer als oder gleich (>=) für das Geburtsdatum.

Als Nächstes ordnen wir das Ergebnis mit Hilfe des Schlüsselworts ORDER BY nach dem Nachnamen. Das Schlüsselwort DESC gibt an, dass das Ergebnis in absteigender Reihenfolge (von Z bis A) sortiert wird. Wenn Sie in aufsteigender Reihenfolge sortieren möchten, verwenden Sie das Schlüsselwort ASC.

Übung 8: Schüler, die zwischen 2003 und 2004 geboren wurden

Übung

Wählen Sie aus der Datenbank den Vornamen, den Nachnamen und das Geburtsdatum von Schülern aus, die zwischen 2003 und 2004 geboren sind.

Lösung

SELECT first_name, last_name, birth_date
FROM student
WHERE birth_date >= '2003-01-01'
AND birth_date <='2004-12-31';

Erläuterung

In dieser Übung werden die Datensätze aller Schüler abgerufen, die am oder nach dem 1. Januar 2003 und vor oder am 31. Dezember 2003 geboren sind. Wir verwenden die SELECT Klausel.

In der vorigen Übung haben wir gesehen, dass Vergleiche auf Datumsangaben zulässig sind, daher lautet unsere Bedingung hier  birth_date >= '2003-01-01' AND birth_date <='2004-12-31'

Übung 9: Zählen der Schüler für jedes Startdatum

Übung

Wählen Sie das Anfangsdatum für alle Schüler und zeigen Sie, wie viele Schüler das gleiche Anfangsdatum haben.

Lösung

SELECT start_date, COUNT(*)
FROM student
GROUP BY start_date;

Erläuterung

In dieser Übung wollen wir das Anfangsdatum für alle Schüler ermitteln und anzeigen, wie viele Schüler das gleiche Anfangsdatum haben. Wir benötigen also eine Spalte, die die Anfangsdaten ohne doppelte Werte enthält, und eine weitere Spalte, die die Anzahl der Schüler mit identischem Anfangsdatum anzeigt.

Die Anweisung GROUP BY ermöglicht die Gruppierung der Zeilen mit denselben Werten (hier: das Anfangsdatum). Zusätzlich verwenden wir die Aggregatfunktion COUNT(), um die Anzahl der Zeilen anzuzeigen, die mit dem Wert des Anfangsdatums übereinstimmen.

Übung 10: Auswählen, Gruppieren und Filtern der Ergebnisse

Übung

Suchen Sie die Starttermine, an denen mehr als 15 Studenten teilgenommen haben. Zeigen Sie das Anfangsdatum und die Anzahl der Schüler an, die an diesem Datum angefangen haben.

Lösung

SELECT start_date, COUNT(*)
FROM student
GROUP BY start_date
HAVING COUNT(*) > 15;

Erläuterung

Wir möchten dieselbe Abfrage wie in der vorherigen Übung durchführen, jedoch mit einem kleinen Unterschied: Wir möchten die Ergebnisse so filtern, dass nur diejenigen angezeigt werden, die einer bestimmten Anzahl entsprechen.

Auf dieselbe Weise führen wir eine SELECT auf die student Tabelle durch. Wir gruppieren das Ergebnis nach Startdatum und verwenden die Aggregatfunktion COUNT(). Schließlich verwenden wir die HAVING Klausel am Ende der Abfrage, um Startdaten, die weniger als 15 Teilnehmer haben, aus der Ergebnismenge zu entfernen.

Übung 11: Wie viele Kurse unterrichtet jeder Dozent?

Übung

Finden Sie für jeden Dozenten heraus, wie viele Lehrveranstaltungen er in jedem akademischen Semester unterrichtet. Geben Sie den Vor- und Nachnamen des Dozenten, das Kalenderjahr, das Semester und die Anzahl der Lehrveranstaltungen an, die der Dozent in diesem Semester unterrichtet.

Lösung

SELECT
   lec.first_name,
   lec.last_name,
   acs.calendar_year,
   acs.term,
   COUNT(course_id)
FROM lecturer AS lec
JOIN course_edition AS ce 
  ON ce.lecturer_id = lec.id
JOIN academic_semester AS acs 
  ON ce.academic_semester_id = acs.id
GROUP BY lec.id, acs.id;

Erläuterung

Diese Aufgabe ist ein wenig schwieriger. Wir müssen drei Tabellen verknüpfen: lecturer, course_edition, und academic_semester. Dies geschieht mit Hilfe desJOIN-Operators. Dann verwenden wir die GROUP BY Klausel, um die Kursausgaben, die von demselben Dozenten im selben akademischen Semester unterrichtet werden, zusammenzufassen. Schließlich verwenden wir die Funktion COUNT(), um zu zählen, wie viele Kurse ein Dozent in diesem Semester anbietet.

Der Artikel SQL Joins: 12 Übungsfragen mit detaillierten Antworten von Tihomir Babic enthält weitere SQL-Join-Übungen, wenn Sie daran interessiert sind.

Lust auf mehr SQL-Praxis?

Ich hoffe sehr, dass dieser Artikel Sie dazu gebracht hat, Ihre SQL-Kenntnisse zu üben und Sie dazu inspiriert hat, einen SQL-Lernpfad einzuschlagen!

Wenn Ihnen die Übungen in diesem Artikel gefallen haben, denken Sie daran, dass die meisten von ihnen aus dem Kurs SQL-Praxis: Universität auf LearnSQL.de stammen. Er ist Teil unseres SQL-Praxis Kurses, der 8 weitere Kurse und fast 1.000 Übungen enthält; das ist eine Menge an praktischer Erfahrung!

Wenn Sie tief in SQL eintauchen wollen, empfehle ich Ihnen unser Alle für immer SQL-Paket. Dieses Angebot enthält alle aktuellen und zukünftigen SQL-Kurse in vier verschiedenen SQL-Dialekten. Wir haben auch ein spezielles Angebot für Studenten.

Vielen Dank für die Lektüre dieses Artikels; wir sehen uns im nächsten!