Домены

  • Часть 1
  • | 2
  • | 3
  • | 4
  • | 5

Ограничение домена может быть одним из следующих:

<ограничение_домена>::= [NOT] <ограничение_домена1>

[[AND|OR][NOT] <ограничение_домена2>]…,

где

<ограничение_домена>::=

{VALUE<операция_сравнения> <значение>

| VALUE [NOT] BETWEEN <значение1> AND <значение2>

| VALUE [NOT] LIKE 'шаблон' [ESCAPE 'символ_пропуска' ]

| VALUE [NOT] CONTAINING <значение>

| VALUE [NOT] STARTING [WITH] <значение>

| VALUE[NOT] IN (<значение1> [ , <значение2> …])

| VALUE IS [NOT] NULL

| VALUE IS [NOT] DISTINCT FROM <значение>};

<значение> ::= { столбец | константа| <выражение> | функция}.

Ключевое слово VALUE используется как обозначение значения, которое будет помещаться в столбец таблицы, имеющий тип соответствующего домена. Например, для определения домена с именем Telephone, описывающего номер телефона абонента (по умолчанию '999999' и не может быть значение '100000') и имеющего тип VARCHAR(10), следует применить следующий запрос:

CREATE DOMAIN Telephone AS VARCHAR(10) DEFAULT '999999' CHECK (VALUE <> '100000');. После определения домена его имя используется для определения типа соответствующих столбцов таблиц.

Примечание. Если в таблице присутствует один столбец и он имеет значение по умолчанию, то его не удастся использовать, так как требуется при вставке в таблицу указать явно хотя бы один столбец.

В учебной базе данных определены пять доменов, запросы определения которых выглядят следующим образом:

CREATE DOMAIN Boolean AS SMALLINT CHECK (VALUE IN (0, 1)); CREATE DOMAIN Money AS NUMERIC(15,2); CREATE DOMAIN PKField AS INTEGER; CREATE DOMAIN TMonth AS SMALLINT CHECK (VALUE BETWEEN 1 AND 12);

предыдущаяследующая