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

Railroad-Diagramm für CREATE TABLE
Railroad-Diagramm für CREATE TABLE
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 DELETE …] [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:

Railroad-Diagramm für named constraints
Railroad-Diagramm für named constraints

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


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]

Kommentare gerne per Mastodon, Verbesserungsvorschläge per gitlab issue (siehe oben). Beitrag teilen: