Constraints in der Data Definition Language (SQL-DDL)
https://oer-informatik.de/sql-ddl-constraints
tl/dr; Die Informationen, ob es sich bei einem Attribut um ein Schlüsselattribut handelt, ob es eingabepflichtig oder einzigartig ist: all das wird über Constraints festgelegt. Es gibt unterschiedliche Möglichkeiten, Constraints festzulegen. Einige werden hier kurz vorgestellt.
DBMS-einheitliche Constraint-Definitionen

Art der Nebenbedingung | Inline | named constraint |
---|---|---|
Primärschlüssel | PRIMARY KEY (field) |
PRIMARY KEY (field) |
zusammengesetzte Primärschlüssel | CONSTRAINT (NameDesConstraints) PRIMARY KEY (field1, field2) |
|
Fremdschlüssel | FOREIGN KEY (FK_Attribut) REFFERENCES Ref_Tabelle(Ref_Attribut) [ ON DELET E …] [ON UPDATE …] |
CONSTRAINT (NameDesConstraints) FOREIGN KEY (FK_Attribut) REFFERENCES Ref_Tabelle(Ref_Attribut) [ ON DELETE …] [ON UPDATE …] |
einzigartig | UNIQUE |
|
eingabepflichtig | NOT NULL |
|
optional | standardmäßig (explizit in manchen DBMS: NULL ) |
|
Eingabe von Default-Werten (z.B. immer 0 bei Zahlen) | DEFAULT value |
|
Check-Constraints (nur eingegrenzte Werte erlauben) | CONSTRAINT volljaehrig CHECK (Alter>=18) |
Die Constraints PRIMARY KEY
, FOREIGN KEY
, UNIQUE
und CHECK
lassen sich in den meisten DBMS als named constraint formulieren. Die zugrunde liegende Syntax findet sich in folgendem Railroad-Diagramm wieder:

DBMS-spezifische Constraint-Notationen:
Datentyp | MSSQL | MySQL / MariaDB | postgreSQL | OracleDB | SQLite |
---|---|---|---|---|---|
Automatisch hochzählenden Indizes | IDENTITY |
AUTO_INCREMENT |
SERIAL |
SERIAL |
AUTOINCREMENT |
offizielle Dokumentation des DBMS zu Constraints | … | MySQL Constraints MariaDB Constraints | postgres-Doku | SQLite-Doku |
Nachträgliches Ergänzen von Constraints
Einen Constraint im Nachhinein anfügen (als named constraint):
Named Constraints im Nachhinein löschen:
Allgemeine Infos zum Tabellenerstellen
Um Tabellen passgenau erstellen zu können, benötigen wir Wissen über die verfügbaren Grundlagen zum Tabellen- und Datenbankerstellen, die Datentypen sowie die Constraints (wie Schlüsselattribute, Eingabepflicht usw.).
Links und weitere Informationen
Quellen und offene Ressourcen (OER)
Die Ursprungstexte (als Markdown), Grafiken und zugrunde liegende Diagrammquelltexte finden sich (soweit möglich in weiterbearbeitbarer Form) in folgendem git-Repository:
https://gitlab.com/oer-informatik/db-sql/ddl-basics.
Sofern nicht explizit anderweitig angegeben sind sie zur Nutzung als Open Education Resource (OER) unter Namensnennung (H. Stein, oer-informatik.de) freigegeben gemäß der Creative Commons Namensnennung 4.0 International Lizenz (CC BY 4.0).
Note on reuse
This work and its contents are licensed under CC BY 4.0 unless otherwise noted. Attribution according to TASLL rule please as follows: “Data Definition Language (SQL-DDL)” by Hannes Stein, license: CC BY 4.0. The sources of this work are available on .