Constraints in der Data Definition Language (SQL-DDL)
https://bildung.social/@oerinformatik/
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. (Zuletzt geändert am 22.10.2023)
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
Hinweis zur Nachnutzung als Open Educational Resource (OER)
Dieser Artikel und seine Texte, Bilder, Grafiken, Code und sonstiger Inhalt sind - sofern nicht anders angegeben - lizenziert unter CC BY 4.0. Nennung gemäß TULLU-Regel bitte wie folgt: “Constraints in der Data Definition Language (SQL-DDL)” von Hannes Stein, Lizenz: CC BY 4.0. Der Artikel wurde unter https://oer-informatik.de/sql-ddl-constraints veröffentlicht, die Quelltexte sind in weiterverarbeitbarer Form verfügbar im Repository unter https://gitlab.com/oer-informatik/db-sql/ddl-basics. Stand: 22.10.2023.
[Kommentare zum Artikel lesen, schreiben] / [Artikel teilen] / [gitlab-Issue zum Artikel schreiben]