Теория баз данных

AUTOR IS NULL AND COAUTOR



CREATE TABLE BOOKS

(

ISBN varchar(14) NOT NULL PRIMARY KEY.

TITLE varchar(120) NOT NULL,

AUTOR varchar (30) NULL.

COAUTOR varchar(30) NULL.

YEARJHJBL small int DEFAULT Year(GetDate())

CHECK(YEARJ>UBL > 1960 AND YEAR_PUBL <= YEAR(GetDate())).

PUBLICH varchar(20) NULL.

PAGES smallint CHECK( PAGES >= 5 AND PAGES <= 1000).

CHECK (NOT ( AUTOR IS NULL AND COAUTOR IS NOT NULL))

);

Для анализа ошибок целесообразно именовать все ограничения, особенно если таблица содержит несколько ограничений одного типа. Для именования ограничений используется ключевое слово CONSTRAINT, после которого следует уникаль-

ное имя ограничения, затем тип ограничения и его выражения. Для идентификации ограничений рекомендуют использовать систему именования, которая легко позволит определить при получении сообщения об ошибке, которое вырабатывает СУБД, какое ограничение нарушено. Обычно имя ограничения состоит из краткого названия типа ограничения, далее через символ подчеркивания идет имя атрибута или таблицы, в зависимости от того, к какому уровню относится ограничение, и, наконец, порядковый номер ограничения данного типа, если к одному объекту задается несколько ограничений одного типа.

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

  • РК — для первичного ключа;

  • FK — для внешнего ключа;

  • CK — для проверочного ограничения;

  • U — для ограничения уникальности;

  • DF — для ограничения типа значение по умолчанию.

    Приведем пример оператора создания таблицы BOOKS с именованными ограничениями:

    CREATE TABLE BOOKS

    (

    ISBN varchar(14) NOT NULL.

    TITLE varchar(120) NOT NULL;

    AUTOR varchar (30) NULL.

    COAUTOR varchar(30) NULL.

    YEAR_PUBL smallint NOT NULL.

    PUBLICH varchar(20) NULL,

    PAGES smallint NOT NULL.

    CONSTRAINT PK_BOOKS PRIMARY KEY (ISBN).

    CONSTRAINT OF_ YEAR_PUBL DEFAULT (Year(GetDate()).

    CONSTRAINT CK_ YEAR_PUBL CHECK (YEAR_PUBL >- 1960 AND

    YEAR_PUBL <= YEAR(GetDate())).

    CONSTRANT CK_PAGES CHECK (PAGES > = 5 AND PAGES <= 1000).

    Содержание  Назад  Вперед