Direkt zum Hauptinhalt springen
eLearner.app

Interaktiver Kurs

SQL-Kurs

Lerne SQL von Grund auf, mit einem echten Postgres, das in deinem Browser läuft.

01 · Modul 1 — Basis-SELECT

4 Lektionen

Die Grundlagen: Daten aus einer Tabelle lesen und filtern.

  1. 1.1Einführung in SQLWas SQL ist, warum es verwendet wird und wie eine Datenbank aussieht.~5 Min
  2. 1.2SELECT … FROMDie einfachste Abfrage: Zeilen aus einer Tabelle lesen.~10 Min
  3. 1.3Filtern mit WHEREAuswahl nur der Zeilen, die eine Bedingung erfüllen.~10 Min
  4. 1.4Sortieren mit ORDER BYErgebnisse sortieren, aufsteigend oder absteigend.~8 Min

02 · Modul 2 — Leistungsfähigeres SELECT

4 Lektionen

Begrenzen, Duplikate entfernen, umbenennen und zählen: die Werkzeuge, die du täglich benutzt.

  1. 2.1Begrenzen mit LIMITNur die ersten N Zeilen zurückgeben, um z. B. Ranglisten zu erstellen.~6 Min
  2. 2.2Einzigartige Werte mit DISTINCTDuplikate aus dem Ergebnis eines SELECT entfernen.~6 Min
  3. 2.3Umbenennen mit ASSpalten und Ausdrücken im Ergebnis lesbarere Namen geben.~6 Min
  4. 2.4Zählen und Zusammenfassen: COUNT, AVG, MAXAggregatfunktionen: Eine einzelne Zahl aus vielen Zeilen erhalten.~8 Min

03 · Modul 3 — JOIN und GROUP BY

4 Lektionen

Kombination mehrerer Tabellen und Erstellung von Berichten nach Gruppen: das Herzstück jeder echten Abfrage.

  1. 3.1Verbinden zweier Tabellen: INNER JOINKombination von Zeilen aus verschiedenen Tabellen entsprechend ihrer Beziehungen.~12 Min
  2. 3.2Alles auf der linken Seite behalten: LEFT JOINZeilen einbeziehen, die keine Übereinstimmung in der anderen Tabelle haben.~10 Min
  3. 3.3Gruppieren mit GROUP BYBerechnung eines Aggregats pro Gruppe, zum Beispiel pro Abteilung.~10 Min
  4. 3.4Filtern von Gruppen: HAVINGNur die Gruppen behalten, die eine Bedingung für das Aggregat erfüllen.~8 Min

04 · Modul 4 — Praktisches SQL

4 Lektionen

Die Werkzeuge, die in der Praxis den Unterschied machen: Listen, Bereiche, NULLs und bedingte Logik.

  1. 4.1Listen und Bereiche: IN und BETWEENKompakte Filter für „eines von diesen“ und „zwischen A und B“.~8 Min
  2. 4.2Umgang mit NULLs: IS NULL und COALESCEFehlende Werte ohne Überraschungen erkennen und behandeln.~10 Min
  3. 4.3Bedingte Logik: CASE WHENWerte direkt im SELECT in Kategorien transformieren.~10 Min
  4. 4.4Eine Abfrage in einer anderen: SubabfragenDas Ergebnis eines SELECT in einem anderen SELECT verwenden.~12 Min

05 · Modul 5 — Fortgeschrittene JOINs

4 Lektionen

Multi-Tabellen-JOINs, Self-JOINs, OUTER-, CROSS- und Mengenoperationen: Daten kombinieren wie ein Profi.

  1. 5.1JOINs über drei oder mehr TabellenDurchlaufen einer Beziehungskette: Bestellungen → Kunden → Produkte in einer einzigen Abfrage.~12 Min
  2. 5.2Self-JOIN: Eine Tabelle mit sich selbstHierarchien und interne Beziehungen: Lesen einer Tabelle mit zwei Rollen (Kind und Elternteil).~10 Min
  3. 5.3OUTER JOIN: Die „Lücken“ findenLEFT/RIGHT/FULL OUTER JOIN verwenden, um Zeilen ohne Übereinstimmung zu finden.~10 Min
  4. 5.4UNION, INTERSECT, EXCEPT (und CROSS JOIN)Kombination von Ergebnissen als Mengen: Vereinigung, Schnittmenge, Differenz und kartesisches Produkt.~12 Min

06 · Modul 6 — Integrierte Funktionen

4 Lektionen

Transformieren und Manipulieren von Daten mit nativen PostgreSQL-Funktionen: Strings, Datumsangaben, Zahlen, Typkonvertierungen.

  1. 6.1String-FunktionenLOWER, UPPER, LENGTH, Verkettung, SUBSTRING, TRIM, REPLACE, LIKE und ILIKE.~12 Min
  2. 6.2Datums- und Timestamp-FunktionenEXTRACT, DATE_TRUNC, Intervalle und Datumsdifferenzen.~12 Min
  3. 6.3Numerische FunktionenROUND, CEIL, FLOOR, ABS, MOD und Integer- vs. Dezimaldivision.~10 Min
  4. 6.4CAST und TypkonvertierungenKonvertieren zwischen Typen mit `::type` und `CAST(... AS ...)`.~10 Min

07 · Modul 7 — Fortgeschrittene Analytik

4 Lektionen

Mehrstufige Abfragen (CTE), Rankings und laufende Summen (Window-Funktionen), unbegrenzte Hierarchien (WITH RECURSIVE).

  1. 7.1CTE: Mehrstufige Abfragen mit WITHEine komplexe Abfrage in benannte Schritte aufteilen, um Lesbarkeit und Wiederverwendbarkeit zu verbessern.~12 Min
  2. 7.2Window-Funktionen: Rankings und Berechnungen pro GruppeROW_NUMBER, RANK, DENSE_RANK mit OVER(PARTITION BY …) für Rankings innerhalb von Gruppen.~14 Min
  3. 7.3LAG, LEAD und laufende SummenJede Zeile mit der vorherigen/nächsten vergleichen und kumulative Summen berechnen.~12 Min
  4. 7.4Rekursive CTEs: Hierarchien mit beliebiger TiefeWITH RECURSIVE zum Durchlaufen von Hierarchien wie Kategorien.~14 Min

08 · Modul 8 — Schreiben und Modifizieren von Daten

4 Lektionen

INSERT, UPDATE, DELETE, CREATE TABLE mit Constraints, Transaktionen: Schließen des Kreises mit Schreibvorgängen.

  1. 8.1Daten einfügen: INSERTINSERT für einzelne und mehrere Zeilen, RETURNING-Klausel, explizite Spaltenauswahl.~10 Min
  2. 8.2Aktualisieren und Löschen: UPDATE und DELETESelektive Änderungen mit WHERE, und warum ein vergessenes WHERE eine Katastrophe ist.~10 Min
  3. 8.3Erstellen von Tabellen und Constraints: DDLCREATE TABLE mit PRIMARY KEY, NOT NULL, UNIQUE, FOREIGN KEY, CHECK und DEFAULT.~12 Min
  4. 8.4Transaktionen: Alles oder nichtsBEGIN, COMMIT, ROLLBACK: Eine Gruppe von Operationen atomar machen.~10 Min

09 · Modul 9 — Datenstrukturen und DDL

4 Lektionen

Erstellen und Ändern von Tabellen, fortgeschrittene Constraints, komplexe Typen und Views.

  1. 9.1Fortgeschrittene Datentypen und ENUMsNumerische Typen, TEXT vs. VARCHAR, BOOLEAN, UUID und benutzerdefinierte ENUM-Typen.~10 Min
  2. 9.2Mehrere und tabellenübergreifende ConstraintsZusammengesetzte UNIQUE- und PRIMARY KEY-Constraints, fortgeschrittene CHECK- und Fremdschlüssel-Constraints (ON DELETE CASCADE).~12 Min
  3. 9.3Struktur ändern: ALTER TABLEHinzufügen, Ändern und Entfernen von Spalten oder Constraints bei bestehenden Tabellen.~10 Min
  4. 9.4Views und DatenabstraktionErstellen von VIEWs zur Vereinfachung komplexer Abfragen und MATERIALIZED VIEWs zur Leistungssteigerung.~12 Min

10 · Optimierung und Indizes

4 Lektionen

Die Kunst, Abfragen schnell zu machen: Indizes, Ausführungspläne und Datenbankoptimierung.

  1. 10.1Indizes und B-TreesErstellen von Indizes, um Suchabfragen auf großen Tabellen drastisch zu beschleunigen.~15 Min
  2. 10.2EXPLAIN und ANALYZELerne, die Ausführungspläne der Datenbank zu lesen, um Engpässe zu diagnostizieren.~15 Min
  3. 10.3Zusammengesetzte und partielle IndizesIndizes auf mehreren Spalten gleichzeitig oder nur auf einem bestimmten Teil der Daten verwenden.~12 Min
  4. 10.4Das N+1-ProblemDas berüchtigte ORM-Performance-Problem und die nativen SQL-Methoden, um es in einer einzigen Abfrage zu lösen.~12 Min

11 · Transaktionen und Nebenläufigkeit

4 Lektionen

Sichere Verwaltung gleichzeitiger Datenänderungen: ACID-Transaktionen, Locks und Isolationsstufen.

  1. 11.1ACID-Transaktionen (BEGIN/COMMIT)Daten konsistent halten mit BEGIN, COMMIT und ROLLBACK, indem Abfragen in einem einzigen, für andere unsichtbaren Block gruppiert werden.~15 Min
  2. 11.2Race ConditionsGrenzfallszenarien: Was passiert, wenn zwei parallele Datenbank-Mitarbeiter auf denselben Warenkorb zugreifen.~10 Min
  3. 11.3Locking und SELECT FOR UPDATEAktives Sperren von Zeilen beim Lesen, wodurch andere schreibende Threads gezwungen werden, zu warten.~15 Min
  4. 11.4IsolationsstufenGehe an die Grenzen durch Implementierung von Serializable oder weiche auf Read Committed für unsichere, aber schnelle Performance aus.~12 Min

12 · Funktionen und Trigger

4 Lektionen

Automatisierung der Geschäftslogik in der Datenbank: Schreiben wiederverwendbarer Funktionen und Reagieren auf Ereignisse mit Triggern.

  1. 12.1UDFs und Basis-SQLErstelle deine eigenen User Defined Functions, um komplexe Berechnungen zu kapseln und sie wie Makros in jeder Abfrage wiederzuverwenden.~15 Min
  2. 12.2Fortgeschrittene Logik mit PL/pgSQLGib deinen Funktionen Superkräfte: Variablen, if-else-Verzweigungen und Schleifen im reinen prozeduralen Stil in der Datenbank.~15 Min
  3. 12.3Einführung in TriggerDefiniere spezielle Funktionen, die sofort den ausgehenden (OLD) oder eingehenden (NEW) Datensatz überprüfen können.~15 Min
  4. 12.4Praktische Trigger und AuditAutomatisiere die Sicherheit: Automatische Aktualisierung des „updated_at“-Datums und Archivierung gelöschter Zeilen.~12 Min

13 · Window-Funktionen

4 Lektionen

Fortgeschrittene Datenanalyse ohne Zusammenklappen von Zeilen: Entdecke OVER(), PARTITION BY und analytische Funktionen.

  1. 13.1Einführung und die OVER-KlauselAggregatberechnungen (wie SUM oder AVG) ausführen und dabei die ursprünglichen Einzelzeilen beibehalten.~15 Min
  2. 13.2Gruppieren mit PARTITION BYErstelle logische Gruppierungen (Fenster) in den Daten, auf die Funktionen angewendet werden sollen, ohne GROUP BY zu verwenden.~15 Min
  3. 13.3Rankings: ROW_NUMBER, RANK und DENSE_RANKZuweisen von sequenziellen Zeilennummern und Rängen zu Ergebnissen, korrekter Umgang mit Gleichständen.~15 Min
  4. 13.4Verschiebungen: LAG und LEADZugriff auf Werte aus der vorherigen oder nächsten Zeile direkt aus der aktuellen Zeile, um Differenzen zu berechnen.~12 Min

14 · CTEs und hierarchische Abfragen (WITH)

3 Lektionen

Vereinfache riesige Abfragen mit Common Table Expressions und navigiere in unbegrenzten Datenbäumen mit rekursiven CTEs.

  1. 14.1Einführung in CTEs (WITH)Ersetze unlesbare geschachtelte Subabfragen durch ein sauberes prozedurales Format, indem du temporäre „virtuelle Tabellen“ deklarierst.~12 Min
  2. 14.2Mehrere und verkettete CTEsBändige die Komplexität, indem du die Verarbeitung in mehrere aufeinanderfolgende Schritte innerhalb einer einzigen WITH-Anweisung aufteilst.~15 Min
  3. 14.3Rekursive CTEs: BaumstrukturenNavigiere ohne Grenzen in Manager-Hierarchien und Parent-Child-Kategorien, indem du die CTE von sich selbst aufrufst.~18 Min

15 · PostgreSQL JSON und NoSQL

2 Lektionen

Nutze relationale Leistung gemischt mit flexibler Dokumentenunterstützung über JSON und JSONB, ohne externe Datenbanken zu verwenden.

  1. 15.1JSON- und JSONB-IntegrationSpeichere komplexe Dokumente in einer Spalte und frage deren Felder mit Pfeil-Operatoren ab.~15 Min
  2. 15.2JSON-AggregationsfunktionenErzeuge JSON-Dateien oder Objekt-Arrays dynamisch nativ in SQL mit json_build_object() und json_agg().~15 Min