// LERNEN · SPRACHEN & FRAMEWORKS
SQL
Ein praxisnaher SQL-Kurs mit PostgreSQL, von der ersten Tabelle bis zum Tuning von Abfragen, zum Absichern der Daten und zur Pflege einer Datenbank. Jede Abfrage wird mit PostgreSQL 18 ausgeführt und geprüft.
Niveau: Einstieg bis Vertiefung · Für: Entwickler, Analysten und alle, die verlässliche Antworten aus einer relationalen Datenbank wollen. Keine Vorkenntnisse nötig.
Lehrplan
Einstieg
Vollständig
Nach dieser Stufe können Sie
- Tabellen mit passenden Typen und Constraints anlegen und Zeilen einfügen, ändern und löschen
- SELECT-Abfragen mit WHERE, ORDER BY, LIMIT, Ausdrücken und Funktionen schreiben und NULL richtig behandeln
- Tabellen mit Inner und Outer Joins verbinden, mit Aggregaten, GROUP BY und HAVING zusammenfassen und die gelieferten Zeilen vorhersagen
- Mit psql eine Verbindung aufbauen, Skripte ausführen und ein Schema untersuchen
B1Erste Schritte4 von 4 geschrieben · 4 LektionenBrowser und Ihr Rechner
Eine Datenbank, Tabellen und Zeilen anlegen und abfragen
Sie bauen: Die Bibliotheksdatenbank
B2Abfragen auf einer Tabelle5 von 5 geschrieben · 5 LektionenBrowser und Ihr Rechner
Fragen mit Filtern, Sortierung, Funktionen und korrekter NULL-Behandlung beantworten
Sie bauen: Zehn Fragen an die Bibliothek beantworten
B3Joins und Aggregate6 von 6 geschrieben · 6 LektionenBrowser und Ihr Rechner
Tabellen mit Joins verbinden und Daten mit Aggregaten, GROUP BY und HAVING zusammenfassen
Sie bauen: Ein Ausleihbericht
B4Daten und Schema ändern5 von 5 geschrieben · 5 LektionenBrowser und Ihr Rechner
Zeilen ändern und das Schema mit Constraints und ALTER TABLE sicher weiterentwickeln
Sie bauen: Das Bibliotheksschema weiterentwickeln
Projekt der Stufe Einstieg
Bibliotheksdatenbank
Ein Skript, das Bücher, Mitglieder und Ausleihen mit Schlüsseln und Constraints anlegt, Beispieldaten lädt und eine Reihe von Fragen mit Abfragen beantwortet.
Läuft im BrowserSelbst geprüft anhand einer Checkliste
Zur ProjektanleitungAufbau
Demnächst verfügbar
Nach dieser Stufe können Sie
- PostgreSQL-Datentypen richtig wählen und nutzen: Zahlen, Text, Datum und Uhrzeit mit Zeitzonen, JSONB, Arrays und Ranges
- Unterabfragen, CTEs einschließlich rekursiver, Mengenoperationen und Fensterfunktionen schreiben
- Views, Materialized Views, SQL- und PL/pgSQL-Funktionen und Trigger bauen
- Transaktionen nutzen, Isolationsstufen und MVCC erklären und sichere Upserts schreiben
I1Datentypen im DetailDemnächst verfügbar · 5 LektionenBrowser und Ihr Rechner
Den passenden Typ wählen und Fallen bei Zahlen, Text, Zeitzonen und JSONB vermeiden
Sie bauen: Ein Ereignisprotokoll-Schema mit Arrays und Ranges
- I1.1Demnächst verfügbar
- I1.2Demnächst verfügbar
- I1.3Demnächst verfügbar
- I1.4Demnächst verfügbar
- I1.5Demnächst verfügbar
I2Fortgeschrittene AbfragenDemnächst verfügbar · 6 LektionenBrowser und Ihr Rechner
Mehrstufige Abfragen und Ranglisten mit Unterabfragen, CTEs, Mengenoperationen und Fensterfunktionen schreiben
Sie bauen: Eine Rangliste mit laufenden Summen
- I2.1Demnächst verfügbar
- I2.2Demnächst verfügbar
- I2.3Demnächst verfügbar
- I2.4Demnächst verfügbar
- I2.5Demnächst verfügbar
- I2.6Demnächst verfügbar
I3Views, Funktionen und TriggerDemnächst verfügbar · 5 LektionenBrowser und Ihr Rechner
Wiederverwendbare Logik mit Views, Funktionen und Triggern in die Datenbank legen
Sie bauen: Ein Audit-Log-Trigger
- I3.1Demnächst verfügbar
- I3.2Demnächst verfügbar
- I3.3Demnächst verfügbar
- I3.4Demnächst verfügbar
- I3.5Demnächst verfügbar
I4Transaktionen und NebenläufigkeitDemnächst verfügbar · 5 LektionenLäuft auf Ihrem Rechner
Daten korrekt halten, wenn viele Sitzungen gleichzeitig schreiben
Sie bauen: Eine sichere Überweisung
- I4.1Demnächst verfügbar
- I4.2Demnächst verfügbar
- I4.3Demnächst verfügbar
- I4.4Demnächst verfügbar
- I4.5Demnächst verfügbar
Projekt der Stufe Aufbau
Shop-Auswertung
Monatsumsatz und Top-Kunden je Monat mit Fensterfunktionen, eine Materialized View für ein Dashboard und ein Audit-Trigger auf orders.
Läuft auf Ihrem RechnerSelbst geprüft anhand einer Checkliste
Vertiefung
Demnächst verfügbar
Nach dieser Stufe können Sie
- EXPLAIN-ANALYZE-Ausgaben lesen, mehrspaltige, partielle und Ausdrucksindizes wählen und Daten mit COPY effizient laden
- Ein normalisiertes Schema mit Schlüsseln, Constraints, generierten Spalten, Schemas und Partitionierung entwerfen
- Eine Datenbank mit Rollen, Rechten und Row-Level Security absichern, SQL-Injection verhindern und sichern und wiederherstellen
- Volltextsuche und JSON-Path-Abfragen umsetzen und eine Datenbank mit VACUUM und Statistik-Views pflegen
A1Indizes und AbfrageleistungDemnächst verfügbar · 6 LektionenLäuft auf Ihrem Rechner
Langsame Abfragen mit EXPLAIN finden und mit den richtigen Indizes schnell machen
Sie bauen: Fünf langsame Abfragen beschleunigen
- A1.1Demnächst verfügbar
- A1.2Demnächst verfügbar
- A1.3Demnächst verfügbar
- A1.4Demnächst verfügbar
- A1.5Demnächst verfügbar
- A1.6Demnächst verfügbar
A2SchemaentwurfDemnächst verfügbar · 4 LektionenBrowser und Ihr Rechner
Ein Schema entwerfen, das die Daten konsistent hält
Sie bauen: Das Shop-Schema entwerfen
- A2.1Demnächst verfügbar
- A2.2Demnächst verfügbar
- A2.3Demnächst verfügbar
- A2.4Demnächst verfügbar
A3Sicherheit und AdministrationDemnächst verfügbar · 5 LektionenLäuft auf Ihrem Rechner
Zugriffe mit Rollen und Row-Level Security steuern und sich mit Sicherungen von Fehlern erholen
Sie bauen: Mandantenfähige Daten mit Row-Level Security
- A3.1Demnächst verfügbar
- A3.2Demnächst verfügbar
- A3.3Demnächst verfügbar
- A3.4Demnächst verfügbar
- A3.5Demnächst verfügbar
A4Suche, JSON und WartungDemnächst verfügbar · 4 LektionenLäuft auf Ihrem Rechner
Volltextsuche ergänzen und eine Datenbank gesund halten
Sie bauen: Büchersuche mit Ranking
- A4.1Demnächst verfügbar
- A4.2Demnächst verfügbar
- A4.3Demnächst verfügbar
- A4.4Demnächst verfügbar
Projekt der Stufe Vertiefung
Getunter, abgesicherter Shop
Die Shop-Datenbank mit größerem Datenbestand, Indizes auf Grundlage von EXPLAIN ANALYZE, Mandantentrennung per Row-Level Security und einer erprobten Sicherung und Wiederherstellung.
Läuft auf Ihrem RechnerSelbst geprüft anhand einer Checkliste
Abschlussprojekt
Abschlussprojekt
Datenbank für ein Buchungssystem
Ein Schema, dessen Constraints Doppelbuchungen verhindern, Funktionen für den Buchungsablauf, Berichte, Rollen, Suche und eine README für das Portfolio.
Läuft auf Ihrem RechnerSelbst geprüft anhand einer Checkliste
Quellen
- PostgreSQL 18 documentation
- PostgreSQL Downloads (postgresql.org; englisch)
- Windows installers (postgresql.org; englisch)
- Architectural Fundamentals (PostgreSQL 18 documentation, tutorial; englisch)
- Creating a Database (PostgreSQL 18 documentation, tutorial; englisch)
- Accessing a Database (PostgreSQL 18 documentation, tutorial; englisch)
- Creating a New Table (PostgreSQL 18 documentation, tutorial; englisch)
- Populating a Table With Rows (PostgreSQL 18 documentation, tutorial; englisch)
- psql (PostgreSQL 18 documentation, client applications; englisch)
- Lexical Structure: operator precedence (PostgreSQL 18 documentation, SQL syntax; englisch)
- Numeric Types (PostgreSQL 18 documentation, data types; englisch)
- Character Types (PostgreSQL 18 documentation, data types; englisch)
- Date/Time Types (PostgreSQL 18 documentation, data types; englisch)
- Boolean Type (PostgreSQL 18 documentation, data types; englisch)
- CREATE TABLE (PostgreSQL-18-Dokumentation, SQL-Befehle)
- DROP TABLE (PostgreSQL 18 documentation, SQL commands; englisch)
- Inserting Data (PostgreSQL 18 documentation, data manipulation; englisch)
- INSERT (PostgreSQL-18-Dokumentation, SQL-Befehle)
- Default Values (PostgreSQL 18 documentation, data definition; englisch)
- Querying a Table (PostgreSQL 18 documentation, tutorial; englisch)
- Aggregate Functions: count und max (PostgreSQL-18-Dokumentation, Funktionen)
- Select Lists: column labels (PostgreSQL 18 documentation, queries; englisch)
- Table Expressions: Joins und GROUP BY (PostgreSQL-18-Dokumentation, Abfragen)
- Comparison Functions and Operators (PostgreSQL-18-Dokumentation; englisch)
- Logical Operators (PostgreSQL 18 documentation, functions; englisch)
- Row and Array Comparisons: NOT IN (PostgreSQL 18 documentation, functions; englisch)
- Sorting Rows (ORDER BY) (PostgreSQL 18 documentation, queries; englisch)
- LIMIT and OFFSET (PostgreSQL 18 documentation, queries; englisch)
- SELECT: output column names (PostgreSQL 18 documentation, SQL commands; englisch)
- Mathematical Functions and Operators (PostgreSQL 18 documentation, functions; englisch)
- Value Expressions: Aggregate Expressions (PostgreSQL 18 documentation, SQL syntax; englisch)
- String Functions and Operators: concat (PostgreSQL 18 documentation, functions; englisch)
- Pattern Matching: LIKE (PostgreSQL 18 documentation, functions; englisch)
- Conditional Expressions: CASE (PostgreSQL 18 documentation, functions; englisch)
- Joins Between Tables (PostgreSQL-18-Dokumentation, Tutorial)
- Aggregate Functions (PostgreSQL-18-Dokumentation, Tutorial)
- Updating Data (PostgreSQL-18-Dokumentation, Datenmanipulation)
- Deleting Data (PostgreSQL-18-Dokumentation, Datenmanipulation)
- UPDATE (PostgreSQL-18-Dokumentation, SQL-Befehle)
- DELETE (PostgreSQL-18-Dokumentation, SQL-Befehle)
- TRUNCATE (PostgreSQL-18-Dokumentation, SQL-Befehle)
- Returning Data from Modified Rows (PostgreSQL-18-Dokumentation, Datenmanipulation)
- Release 18 (PostgreSQL-18-Dokumentation, Versionshinweise)
- Constraints (PostgreSQL-18-Dokumentation, Datendefinition)
- Foreign Keys (PostgreSQL-18-Dokumentation, Tutorial)
- Modifying Tables (PostgreSQL-18-Dokumentation, Datendefinition)
- ALTER TABLE (PostgreSQL-18-Dokumentation, SQL-Befehle)
- Identity Columns (PostgreSQL-18-Dokumentation, Datendefinition)