🗄️ SQL Lehrpfad 1: Grundlagen

SQL 04: Datentypen & Constraints (CHECK/UNIQUE)

Schütze die Datenintegrität deines Systems mit strikten Constraints: NOT NULL, UNIQUE, DEFAULT und CHECK-Bedingungen.

💡 1. Warum Constraints (Integritätsbedingungen)?

Ohne Einschränkungen könnte jede Anwendung fehlerhafte Daten wie negative Altersangaben, doppelte E-Mail-Adressen oder leere Pflichtfelder in die Datenbank schreiben. Constraints garantieren die Konsistenz direkt auf Datenbankebene!

CREATE TABLE bank_kunden (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    kunden_nr TEXT NOT NULL UNIQUE,
    name TEXT NOT NULL,
    email TEXT NOT NULL UNIQUE,
    kunden_alter INTEGER NOT NULL CHECK (kunden_alter >= 18),
    bonitaets_score INTEGER NOT NULL DEFAULT 500 CHECK (bonitaets_score BETWEEN 100 AND 1000),
    status TEXT NOT NULL DEFAULT 'aktiv' CHECK (status IN ('aktiv', 'verifiziert', 'gesperrt')),
    registriert_am TEXT NOT NULL DEFAULT CURRENT_TIMESTAMP
);

🛡️ 2. Die CHECK-Klausel & Wertebereiche

Mit CHECK kannst du beliebige boolesche Ausdrücke als Wächter für jede neu eingefügte oder geänderte Zeile definieren:

  • Wertebereich: CHECK (kunden_alter >= 18)
  • Intervall: CHECK (score BETWEEN 100 AND 1000)
  • Erlaubte Wertemenge (Enum): CHECK (status IN ('aktiv', 'inaktiv', 'gesperrt'))
  • Kreditlimit / Saldo: CHECK (saldo >= -500.0)
🚪 Didaktische Analogie: Die Türsteher der Datenbank

Jeder Constraint ist ein spezialisierter Türsteher: NOT NULL lässt niemanden ohne Ausweis hinein, UNIQUE verbannt Zwillings-Klone, CHECK (kunden_alter >= 18) prüft den Jugendschutz und DEFAULT spendiert jedem Gast automatisch ein Begrüßungsgetränk, falls er keines bestellt hat!

📑 3. Cheat-Sheet: SQL Constraints

Constraint Syntax-Beispiel Beschreibung
PRIMARY KEY id INTEGER PRIMARY KEY Eindeutiger Identifikator für jede Zeile
NOT NULL name TEXT NOT NULL Verbietet NULL / leere Werte
UNIQUE email TEXT UNIQUE Verhindert doppelte Werte in der Spalte
DEFAULT saldo REAL DEFAULT 0.0 Automatische Belegung bei Fehlen
CHECK CHECK (saldo >= -500.0) Validierungsregel für Werte

🎯 Aufgaben & Checkliste in aufgabe.sql

💻 In Web-IDE öffnen → ← Zurück zu SQL 03 Weiter zu Lehrpfad 2: SQL 05 →