Введение в стандарты языка баз данных SQL


Определение таблицы - часть 2


Пояснения:

  1. Определение столбца может входить в определение таблицы, объявление временной таблицы и в оператор изменения схемы таблицы (ALTERTABLE). Пусть T обозначает соответствующую таблицу. Имя столбца в определении столбца должно отличаться от имени любого существующего столбца таблицы T.
  2. i-тый столбец таблицы описывается i-тым определением столбца в определении таблицы. Имя и тип данных или домен столбца специфицируется именем столбца и типом данных или именем домена соответственно. Пусть C - имя столбца из определения столбца.
  3. Если в определение столбца входит определение ограничения столбца, то пусть CND обозначает определение имени ограничения, если оно задано, а иначе пусть соответствует строке нулевой длины; пусть CA обозначает атрибуты ограничения, если они заданы, а иначе пусть соответствует строке нулевой длины. Определение ограничения столбца эквивалентно следующим определениям ограничения таблицы:

      (a) если определение ограничения столбца содержит ограничение столбца NOTNULL, то оно эквивалентно ограничению таблицы CNDCHECK (CISNOTNULL) CA;

      (b) если определение ограничения столбца содержит спецификацию уникальности, то оно эквивалентно определению ограничения таблицы, содержащему CND <uniquespecification> (C) CA

      (c) если определение ограничения столбца содержит спецификацию ссылок (referencesspecification), то оно эквивалентно следующему табличному ограничению: CNDFOREIGNKEY (C) <referencesspecification> CA

      (d) если определение ограничения столбца содержит определение проверочного ограничения, то оно эквивалентно определению табличного ограничения CNDCHECK (<searchcondition>) CA; при этом каждая ссылка на столбец, непосредственно содержащаяся в условии поиска, должна указывать на столбец C.

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

<default clause> ::= DEFAULT <default option> <default option> ::= <literal> |<datetime value function> |USER |CURRENT_USER |SESSION_USER |SYSTEM_USER NULL

Смысл этой конструкции ясен из синтаксических правил.




Начало  Назад  Вперед



Книжный магазин