Zum Inhalt
wannacode

Datenbanken und SQL

Fast jedes Programm speichert Daten: Bestellungen, Nutzer, Nachrichten, Zahlungen. In diesem Kurs geht es darum, wo und wie. Du beginnst bei deiner ersten Abfrage an einer echten Shop-Datenbank und kommst bis zu Entwurf, Transaktionen, Indizes, der Verbindung aus dem Code und der Frage, welche Datenbank zu welcher Aufgabe passt.

Die Abfragen laufen hier, im Browser: Jedes Codefeld ist eine echte SQLite-Datenbank. Du tippst, klickst auf „Ausführen“ und siehst das Ergebnis. Es muss nichts installiert werden. Am Ende gibt es ein Modul zu den anderen Arten von Datenbanken (Dokument, Key-Value, Ereignisströme, Graphen, spaltenorientiert, Suche, Vektoren), ebenfalls mit Live-Simulatoren.

Der Kurs ist in Module gegliedert, jedes Modul in kurze Lektionen. Eine Lektion ist eine Reihe von Karten, eine Idee pro Karte: eine Frage aus der echten Arbeit, die Abfrage, die sie beantwortet, und eine kleine Aufgabe, die du sofort prüfst. Deine Antwort wird auf derselben Datenbank mit dem richtigen Ergebnis verglichen, und der Fehler von SQLite wird in einfachen Worten erklärt.

Jedes Modul benutzt nur, was die früheren gezeigt haben. Dein Fortschritt wird in deinem Browser gespeichert.

Modul 0

Willkommen bei den Datenbanken

3 Lektionen · was eine Datenbank ist, Tabellen, die erste Abfrage

  1. Warum eine Datenbank
  2. Der Shop
  3. SQL und echte Datenbanken

Modul 1

Daten lesen

5 Lektionen · SELECT, WHERE, ORDER BY, LIMIT, NULL

  1. SELECT: Spalten auswählen
  2. WHERE: Zeilen filtern
  3. IN, BETWEEN und LIKE
  4. NULL: kein Wert
  5. ORDER BY, LIMIT und DISTINCT

Modul 2

Ausdrücke und Funktionen

4 Lektionen · Rechnen, Text, Datum, CASE

  1. Rechnen in einer Abfrage
  2. Textfunktionen
  3. Datumsfunktionen
  4. CASE und fehlende Werte

Modul 3

Zusammenfassen

4 Lektionen · COUNT, SUM, AVG, GROUP BY, HAVING

  1. Aggregatfunktionen: COUNT, SUM, AVG
  2. GROUP BY: ein Bericht nach Gruppen
  3. HAVING: Bedingung für Gruppen
  4. Die Reihenfolge der Ausführung einer Abfrage

Modul 4

Tabellen verbinden

5 Lektionen · Schlüssel, JOIN, LEFT JOIN, UNION

  1. Primärschlüssel und Fremdschlüssel
  2. JOIN: zwei Tabellen in einer Abfrage
  3. LEFT JOIN: auch Zeilen ohne Partner
  4. Viele Tabellen und eine Tabelle mit sich selbst verbunden
  5. UNION, INTERSECT, EXCEPT und CROSS JOIN

Modul 5

Unterabfragen und Fensterfunktionen

5 Lektionen · Unterabfragen, WITH, Bäume, Fensterfunktionen

  1. Unterabfragen
  2. Korrelierte Unterabfragen
  3. Eine Auswertung in Schritten: WITH
  4. Bäume und Folgen: WITH RECURSIVE
  5. Fensterfunktionen

Modul 6

Daten ändern

4 Lektionen · INSERT, UPDATE, DELETE, UPSERT

  1. INSERT: Zeilen einfügen
  2. UPDATE: Werte ändern
  3. DELETE: Zeilen löschen
  4. Upsert: einfügen oder ändern

Modul 7

Tabellen und Regeln

6 Lektionen · CREATE DATABASE und DROP, CREATE TABLE, Typen, Schlüssel, Views

  1. Die Datenbank: von CREATE bis DROP
  2. CREATE TABLE: eine Tabelle anlegen
  3. Constraints: Regeln für die Daten
  4. Fremdschlüssel: Verbindungen zwischen Tabellen
  5. ALTER TABLE: eine Tabelle ändern
  6. Views

Modul 8

Eine Datenbank entwerfen

4 Lektionen · Beziehungen, ER-Diagramme, Normalisierung

  1. Beziehungstypen: 1:1, 1:N, M:N
  2. ER-Diagramm: von der Beschreibung zum Schema
  3. Normalisierung
  4. Natürliche Schlüssel und Denormalisierung

Modul 9

Transaktionen

4 Lektionen · ACID, BEGIN und COMMIT, gleichzeitiger Zugriff, Trigger

  1. ACID: alles oder nichts
  2. BEGIN, COMMIT, ROLLBACK
  3. Gleichzeitige Transaktionen
  4. Trigger

Modul 10

Indizes und Geschwindigkeit

4 Lektionen · Indizes, Abfrageplan, langsame Abfragen

  1. Indizes
  2. EXPLAIN: der Abfrageplan
  3. Indizes über mehrere Spalten
  4. Langsame Abfragen

Modul 11

Die Datenbank im Programm

5 Lektionen · Verbindung aus dem Code, Parameter, SQL-Injection, ORMs, Migrationen

  1. Aus dem Code mit der Datenbank verbinden
  2. SQL-Injection und Parameter
  3. ORM und das N+1-Problem
  4. Schema-Migrationen
  5. Verbindungspools, Backups und Berechtigungen

Modul 12

Arten von Datenbanken

10 Lektionen · Dokumente, Key-Value, Ereignisse, Graphen, spaltenorientiert, Suche, Vektoren

  1. OLTP und OLAP
  2. Key-Value und der Cache
  3. Dokumentendatenbanken
  4. Ereignisströme
  5. Graphdatenbanken
  6. Spaltenorientierte Datenbanken und Zeitreihen
  7. Text durchsuchen
  8. Suchen nach Bedeutung
  9. Replikation, Sharding und CAP
  10. Wie du eine Datenbank wählst

Modul 13

Projekt: Die Bäckerei von Grund auf

6 Lektionen · die ganze Datenbank, von CREATE TABLE bis DROP

  1. Die Bäckerei, Etappe 1: Datenbank und Tabellen
  2. Die Bäckerei, Etappe 2: die Daten
  3. Die Bäckerei, Etappe 3: die Fragen
  4. Die Bäckerei, Etappe 4: die Änderungen
  5. Die Bäckerei, Etappe 5: die Datenbank arbeitet von selbst
  6. Die Bäckerei, Etappe 6: der Bericht, die Kopie und DROP

Erstellt von Ivo Gergov im Rahmen der Kampagne von Evo Tech für zugängliche Programmierausbildung ·