A domain is the set of values that a table column can have.
A domain definition restricts the set of values that a table
column can have by associating a data type with a domain name,
and allows optional formatting and collating clauses. The CREATE
and ALTER TABLE statements refer to domain names in column
definitions. The domain name must be unique among domain names
in the schema.
You can use a domain when defining columns in multiple tables.
Once you have defined a domain, use the CREATE or ALTER TABLE
statement to define a column based on the domain definition.
You can qualify the domain name with the schema name (when the
domain belongs to a multischema database) or with the alias.
In general, you should use domains when you create tables. Using
domains:
o Ensures that similar columns in multiple tables comply to one
standard. For example, if you define the columns using the
domain ID_DOM, the data type for all these columns is CHAR(5).
o Allows you to change the data type for all columns defined
using a domain by changing the domain itself. For example,
if you want to change the data type for POSTAL_CODE_DOM from
CHAR(5) to CHAR(10), you only need to alter the data type for
POSTAL_CODE_DOM. You do not have to alter the data type for
the column POSTAL_CODE in the tables COLLEGES and EMPLOYEES.
You might not want to use domains when you create tables if:
o You are creating intermediate result tables. It takes time to
plan what the domains are in the database and to define them.
Intermediate result tables might not warrant this effort.
NOTE
In syntax diagrams, the domain-name syntax element refers to
either the qualified or unqualified form of the name given
to the domain in the CREATE DOMAIN statement.
domain-name =
-+---------------------------+-> <name-of-domain> --->
+-+-> <schema-name> -+-> . -+
+-> <alias> -------+