## Wertebereiche

### Voraussetzungen

Sie benötigen die Demo-Daten für das SQL-Tutorial.

Starten Sie das Query Tool SQL Studio als Datenbankadministrator MONA mit dem Kennwort RED und melden Sie sich an die Demo-Datenbankinstanz DEMODB an.

### Beispiele

Beim Anlegen einer Tabelle können Sie für jede Spalte einen Wertebereich definieren.

CREATE TABLE hotel.customer
(cno FIXED(4) PRIMARY KEY CONSTRAINT cno_cons CHECK cno > 0,
title CHAR(7) CONSTRAINT title_cons CHECK title IN ('Mr','Mrs','Company'),
firstname CHAR(20),
name CHAR(40) NOT NULL,
...)

Die Kundennummer ist maximal vierstellig, der Title 7 Zeichen lang, der Vorname 20 Zeichen lang und der Name 40 Zeichen lang.

Siehe auch:

SQL-Referenzhandbuch, CREATE TABLE-Anweisung (create_table_statement)

Diese Wertebereiche können Sie vorab in einer Wertebereichsdefinition festlegen.

### Anlegen eines Wertebereichs

Zum Anlegen eines Wertebereichs verwenden Sie die CREATE DOMAIN-Anweisung.

CREATE DOMAIN name_domain CHAR(20)

Namen sollen 20 Zeichen lang sein.

CREATE DOMAIN birthday_domain DATE DEFAULT DATE
CONSTRAINT birthday_domain > '1880-01-01'AND birthday_domain <= DATE

In der Wertebereichsdefinition birthday_domain für den Geburtstag wird als DEFAULT-Wert das aktuelle Tagesdatum gewählt. Das Geburtsdatum soll nicht vor dem 01.01.1880 liegen.

In einer Wertebereichsdefinition können ein DEFAULT-Wert und/oder eine CONSTRAINT-Definition angegeben werden.

● Die DEFAULT-Werte müssen den eventuell vorhandenen einschränkenden Bedingungen genügen.

● In der CONSTRAINT-Definition darf kein Constraint-Name vergeben werden und als Spaltenname wird der Wertebereichsname verwendet.

### Verwenden des Wertebereichs

...

1. Löschen Sie gegebenenfalls die Tabelle person.
DROP TABLE hotel.person

2. Legen Sie die Tabelle person an.
CREATE TABLE hotel.person
(pno FIXED(6) PRIMARY KEY,
name name_domain,
city CHAR(20))

3. Fügen Sie eine neue Spalte birthday mit dem Wertebereich birthday_domain hinzu.
ALTER TABLE hotel.person ADD birthday birthday_domain

Der Tabelle person wurde unter Berücksichtigung des Wertebereichs name_domain für Namen und mit der Spalte birthday mit der Wertebereichsdefinition birthday_domain angelegt.

Siehe auch:

SQL-Referenzhandbuch, CREATE DOMAIN-Anweisung (create_domain_statement)

Systemtabellen auswerten, COLUMNS, DOMAINS, DOMAINCONSTRAINTS

### Löschen eines Wertebereichs

Zum Löschen eines Wertebereichs verwenden Sie DROP DOMAIN-Anweisung:

DROP DOMAIN name_domain

Mit Hilfe dieser SQL-Anweisung löschen Sie die Wertebereichsdefinition. Tabellendefinitionen, die diese Wertebereichsdefinition verwendet haben, bleiben bestehen.

Siehe auch:

SQL-Referenzhandbuch, DROP DOMAIN-Anweisung (drop_domain_statement)

Weitere Beispiele zur Datendefinition