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

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

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

Creative Commons Lizenzvertrag


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 .

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