## Spaltendefinition (column_definition)

Eine Spaltendefinition (column_definition) definiert eine Spalte einer Tabelle. Name und Datentyp jeder Spalte werden durch Spaltenname column_name und Datentyp data_type bestimmt. Die Spaltennamen müssen innerhalb einer Basistabelle eindeutig sein.

### Syntax

<column_definition> ::= <column_name> <data_type> [<column_attributes>]
| <column_name> <domain_name> [<column_attributes>]

### Erläuterung

Wenn das Spaltenattribut column_attributes [PRIMARY] KEY angegeben ist, darf die CREATE TABLE-Anweisung keine Schlüsseldefinition enthalten.

Eine Spaltendefinition darf nur aus einem Spaltennamen column_name bestehen, wenn in der CREATE TABLE-Anweisung ein QUERY-Ausdruck query_expression verwendet wird.

#### <domain_name>

Wenn Spaltenname und Domänenname domain_name, also der Name eines Wertebereiches, angegeben werden, muss durch den Domänennamen ein existierender Wertebereich identifiziert werden. Der angegebenen Spalte wird der Datentyp und die Länge des Wertebereichs zugewiesen. Falls der Wertebereich eine CONSTRAINT-Definition besitzt, hat dies die gleiche Wirkung wie die Angabe der entsprechenden CONSTRAINT-Definition im Spaltenattribut der Spaltendefinition.

#### NOT NULL-Spalten

Spalten, die Bestandteil des Schlüssels sind, oder für die NOT NULL definiert wurde, heißen NOT NULL-Spalten. In diese kann kein NULL-Wert eingefügt werden.

· Pflichtspalten: NOT NULL-Spalten, für die keine DEFAULT-Spezifikation als Spaltenattribut vereinbart wurde, heißen Pflichtspalten. Beim Einfügen einer Zeile muss für diese Spalte immer ein Wert angegeben werden.

· Optionale Spalten: Spalten, die keine Pflichtspalten sind, heißen optionale Spalten. Für diese Spalten braucht beim Einfügen einer Zeile kein Wert angegeben zu werden. Wenn für die Spalte eine DEFAULT-Spezifikation existiert, wird der Vorschlagswert (DEFAULT-Wert) in die Spalte eingetragen. Existiert keine DEFAULT-Spezifikation, wird ein NULL-Wert in die Spalte eingetragen.

Siehe auch:

Platzbedarf eines Spaltenwertes in Abhängigkeit vom Datentyp

Restriktionen für SQL-Anweisungen