Jetzt, da kursdb existiert und kursuser Zugriff hat, legst du die ersten Tabellen an: kunden und bestellungen – mit sauber definierten Schlüsseln.
🔹 Zur Kurs-Datenbank wechseln

USE kursdb;

🔹 Tabelle kunden anlegen

  • Eindeutiger Primärschlüssel
  • Sinnvolle Felder
  • Einzigartige E-Mail (optional, aber praxisnah)
CREATE TABLE IF NOT EXISTS kunden (
  id            INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  vorname       VARCHAR(50)  NOT NULL,
  nachname      VARCHAR(50)  NOT NULL,
  email         VARCHAR(120) NOT NULL,
  geburtsdatum  DATE         NULL,
  erstellt_am   DATETIME     NOT NULL DEFAULT CURRENT_TIMESTAMP,
  aktualisiert_am DATETIME   NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
  UNIQUE KEY uq_kunden_email (email)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

🔹 Tabelle bestellungen anlegen

  • Fremdschlüssel auf kunden(id)
  • Passende Datentypen
  • Konsistente Referenz-Optionen
CREATE TABLE IF NOT EXISTS bestellungen (
  id            INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  kunde_id      INT UNSIGNED NOT NULL,
  produkt       VARCHAR(100) NOT NULL,
  preis         DECIMAL(10,2) NOT NULL,
  bestelldatum  DATE         NOT NULL,
  erstellt_am   DATETIME     NOT NULL DEFAULT CURRENT_TIMESTAMP,
  CONSTRAINT fk_bestellungen_kunde
    FOREIGN KEY (kunde_id)
    REFERENCES kunden(id)
    ON UPDATE CASCADE
    ON DELETE RESTRICT
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

Warum ON DELETE RESTRICT?

Damit keine Kunden gelöscht werden können, solange Bestellungen existieren (realistische Datenintegrität). Später lernst du Alternativen wie ON DELETE CASCADE.

🔹 Tabellen prüfen

SHOW TABLES;
DESCRIBE kunden;
DESCRIBE bestellungen;

Foreign Keys inspizieren:

SHOW CREATE TABLE bestellungen\G

🔹 Mini-Testdaten einfügen (Vorschau)

(Volle CRUD folgt in Kapitel 5)

INSERT INTO kunden (vorname, nachname, email, geburtsdatum)
VALUES ('Anna','Becker','anna@example.org','1992-05-14');

INSERT INTO bestellungen (kunde_id, produkt, preis, bestelldatum)
VALUES (1, 'USB-C-Hub', 29.90, '2025-09-10');

Schnell prüfen:

SELECT * FROM kunden;
SELECT * FROM bestellungen;

🔹 Übung

  1. Füge zwei weitere Kunden hinzu (mit eindeutigen E-Mails).
  2. Lege je Kunde mindestens eine Bestellung an.
  3. Versuche, eine Bestellung mit ungültigem kunde_id einzufügen – beobachte den Foreign-Key-Fehler.

✅ Zusammenfassung

  • Tabellen in kursdb mit Primär- und Fremdschlüssel angelegt.
  • E-Mail als UNIQUE – praxisnahe Datenqualität.
  • Basis steht für kommende Kapitel (Konsolenbefehle, CRUD, Joins).

📚 Inhaltsverzeichnis

👉 MariaDB Kapitel 1: Einführung & Installation im Terminal
👉 MariaDB Kapitel 2: Benutzer & Rechteverwaltung
👉 MariaDB Kapitel 3: Tabellen sauber anlegen (Primär- & Fremdschlüssel)
👉 MariaDB Kapitel 4: Grundbefehle & Kurzschreibweisen in der MariaDB-Konsole
👉 MariaDB Kapitel 5: CRUD-Befehle  – Daten einfügen, lesen, ändern und löschen
👉 MariaDB Kapitel 6: Primär- und Fremdschlüssel – Tabellen verknüpfen
👉 MariaDB Kapitel 7: Profi-Abfragen mit JOIN, GROUP BY & Aggregatfunktionen
👉 MariaDB Kapitel 8: Indexe, Views & Transaktionen
👉 MariaDB Kapitel 9: Produktivbetrieb – Sicherheit, Backups & Verwaltung
👉 MariaDB Kapitel 10: Abschlussprojekt – Ein Mini-Shop

📚 Bonus-Kapitel Ideen

👉 MariaDB Kapitel 11: Stored Procedures – Automatisierte Abläufe
👉 MariaDB Kapitel 12: Trigger – Aktionen bei Änderungen
👉 MariaDB Kapitel 13: Events – Zeitgesteuerte Aufgaben
👉 MariaDB Kapitel 14: Sicherheit & Best Practices
👉 MariaDB Kapitel 15: Performance-Tuning & Optimierung