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
- Füge zwei weitere Kunden hinzu (mit eindeutigen E-Mails).
- Lege je Kunde mindestens eine Bestellung an.
- Versuche, eine Bestellung mit ungültigem kunde_id einzufügen – beobachte den Foreign-Key-Fehler.
✅ Zusammenfassung
- Tabellen in
kursdbmit 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
