Constraints
Constraints & Struktur
Constraints (Einschränkungen) sind Regeln, die bestimmen, welche Werte in einer Spalte erlaubt sind. Sie sichern die Datenqualität direkt in der Datenbank ab – unabhängig davon, welche Anwendung schreibt. Versucht jemand, eine Regel zu verletzen, lehnt die Datenbank den Vorgang ab.
Die wichtigsten Constraints
| Constraint | Bedeutung |
|---|---|
NOT NULL | Spalte darf nicht leer (NULL) sein |
UNIQUE | Alle Werte müssen verschieden sein |
PRIMARY KEY | Eindeutig + nicht null, identifiziert jede Zeile |
FOREIGN KEY | Verweis auf einen Schlüssel in anderer Tabelle |
CHECK | Wert muss eine Bedingung erfüllen |
DEFAULT | Standardwert, falls keiner angegeben wird |
Beispiel: alle Constraints kombiniert
So sieht die Tabelle Produkte mit mehreren Regeln aus:
CREATE TABLE Produkte ( ProduktID INT PRIMARY KEY, Produktname VARCHAR(100) NOT NULL, Kategorie VARCHAR(50) DEFAULT 'Sonstiges', Preis DECIMAL(8,2) CHECK (Preis >= 0) );
Und ein FOREIGN KEY in Bestellungen, der auf Kunden verweist:
CREATE TABLE Bestellungen ( BestellID INT PRIMARY KEY, KundenID INT, ProduktID INT, Menge INT CHECK (Menge > 0), Bestelldatum DATE, FOREIGN KEY (KundenID) REFERENCES Kunden(KundenID) );
Inline vs. benannt
Constraints kannst du direkt hinter der Spalte schreiben (inline) oder als eigene Zeile mit Namen definieren. Benannte Constraints sind angenehmer, weil Fehlermeldungen den Namen nennen:
CONSTRAINT chk_preis CHECK (Preis >= 0)
Hinweis
Constraints fängst du am besten früh ab – also in der Datenbank, nicht erst im Programmcode. Die folgenden Lektionen erklären jeden Constraint einzeln im Detail. Beachte, dass nicht jedes System alle Constraints gleich behandelt: Ältere MySQL-Versionen haben CHECK z. B. lange ignoriert.