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
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