Проверяемый текст
Пушников А.Ю. Введение в системы управления базами данных. Учебное пособие / Изд-е Башкирского ун-та. - Уфа, 1999.
[стр. 107]

обязано быть не менее одного определения столбца.
В таблице может быть определено несколько ограничений (в том числе и ни одного).
Каждый столбец должен иметь имя и быть определен на некотором типе данных или на некотором домене.
Ограничения домена становятся ограничениями столбца.
Кроме того, столбец может иметь дополнительные ограничения.
Если домен имеет значение по умолчанию и в определении столбца определено значение по умолчанию, то значение для столбца перекрывает значение для домена.
Пример 19.
CREATE TABLE
Salcspeaple (Salespeaple_Id Id_Nums PRIMARY KEY, Fam CHAR(20) NOT NULL, Im CHAR(I5), BirthDate DATE, Salary Salary_Domain DEFAULT 1000, C ity jd INTEGER REFERENCES City ON UPDATE CASCADE ON DELETE RESTRICT, DistrictJd INTEGER, CONSTRAINT AltKey UNIQUE(Fam, Im, BirthDate), CHECK (C ityjd IS NOT NULL OR DistrictJ d IS NOT NULL), FOREIN KEY DistrictJ d REFERENCES District ON UPDATE CASCADE ON DELETE RESTRICT) Этот оператор создает таблицу Salespeaple с колонками (Salespeaplejd, Fam, Im, BirthDate, Salary, C ityjd, D istrictjd) и следующими ограничениями: • Колонка Salespeaplejd наследует все ограничения домена IdJMums.
Кроме того, эта колонка образует первичный ключ таблицы (следовательно, не допускает NULL-значений).

• Колонка Fam не допускает NULL-значений.
[стр. 147]

Пример 18.
Приведенный ниже оператор создает домен Salary на основе целочисленного типа данных, причем значения из этого домена не могут принимать неположительные значения (но могут принимать значение NULL!).
По умолчанию это ограничение проверяется немедленно, но может быть и отложенным: CREATE DOMAIN Salary AS integer CHECK (VALUE > 0) DEFERRABLE INITIALLY IMMEDIATE ALTER DOMAIN Имя домена {SET DEFAULT Значение по умолчанию} {DROP DEFAULT} {ADD [Имя ограничения] Ограничение check [Атрибуты ограничения]} {DROP CONSTRAINT Имя ограничения} Этот оператор изменяет имеющийся домен.
Стандарт запрещает вносить несколько изменений одной командой ALTER DOMAIN.
Т.е.
если требуется удалить ограничение CHECK и добавить значение по умолчанию, то придется выполнить два оператора ALTER DOMAIN.
DROP DOMAIN Имя домена CASCADE RESTRICT Этот оператор уничтожает имеющийся домен.
Если указана опция RESTRICT, то домен не уничтожается, если имеются ссылки на него из столбцов таблиц.
Если указана опция CASCADE, то происходят следующие действия:  Тип данных домена передается столбцам, основанным на этом домене.
 Если столбец не имеет значения по умолчанию, а для домена значение по умолчанию определено, то оно становится значением по умолчанию для столбца.
 Все ограничения домена становятся ограничениями столбца.
CREATE TABLE Имя таблицы ( {Определение столбца [Ограничение таблицы]}.,..) Определение столбца::= Имя столбца {Имя домена Тип данных [Размер]} [Ограничение столбца…] [DEFAULT Значение по умолчанию] Этот оператор (синтаксис приведен не полностью пропущены опции создания временных таблиц) создает таблицу базы данных.
В таблице обязано быть не менее одного определения столбца.
В таблице может быть определено несколько ограничений (в том числе и ни одного).
Каждый столбец должен иметь имя и быть определен на некотором типе данных или на некотором домене.
Ограничения домена становятся ограничениями столбца.
Кроме того, столбец может иметь дополнительные ограничения.
Если домен имеет значение по умолчанию и в определении столбца определено значение по умолчанию, то значение для столбца перекрывает значение для домена.
Пример 19.
CREATE TABLE
Salespeaple (Salespeaple_Id Id_Nums PRIMARY KEY, Fam CHAR(20) NOT NULL, Im CHAR(15), BirthDate DATE, Salary Salary_Domain DEFAULT 1000, City_Id INTEGER REFERENCES City ON UPDATE CASCADE ON DELETE RESTRICT,

[стр.,148]

District_Id INTEGER, CONSTRAINT AltKey UNIQUE(Fam, Im, BirthDate), CHECK (City_Id IS NOT NULL OR District_Id IS NOT NULL), FOREIN KEY District_Id REFERENCES District ON UPDATE CASCADE ON DELETE RESTRICT) Этот оператор создает таблицу Salespeaple с колонками (Salespeaple_Id, Fam, Im, BirthDate, Salary, City_Id, District_Id) и следующими ограничениями:  Колонка Salespeaple_Id наследует все ограничения домена Id_Nums.
Кроме того, эта колонка образует первичный ключ таблицы (следовательно, не допускает NULL-значений).

 Колонка Fam не допускает NULL-значений.
 Колонка Salary наследует все ограничения домена Salary_Domain.
Кроме того, эта колонка имеет значения по умолчанию1000.
 Колонка City_Id является внешним ключом, ссылающимся на первичный ключ таблицы City.
При изменении первичного ключа в таблице City соответствующие значения внешнего ключа в таблице Salespeaple будут каскадно изменены.
При удалении строки из таблицы City будет выполняться проверка, нет ли ссылок на удаляемую строку из таблицы Salespeaple.
Если такие ссылки найдутся, то операция удаления в таблице City будет отвергнута.
 Колонка District_Id также является внешним ключом, ссылающимся на первичный ключ таблицы District.
Этот внешний ключ, в отличие от предыдущего, определен как ограничение таблицы.
Действия, определенные по ссылке аналогичны предыдущим.
 Колонки (Fam, Im, BirthDate) образуют альтернативный ключ таблицы.
Это ограничение имеет наименование AltKey.
 Колонки City_Id и District_Id не могут одновременно принимать NULL-значения (хотя каждая из них по отдельности допускает использование NULL-значений).
ALTER TABLE Имя таблицы {ADD [COLUMN] Определение столбца} {ALTER [COLUMN] Имя столбца {SET DEFAULT Значение по умолчанию DROP DEFAULT}} {DROP [COLUMN] Имя столбца RESTRICT CASCADE} {ADD Ограничение таблицы} {DROP CONSTRAINT Имя ограничения RESTRICT CASCADE} Этот оператор позволяет изменять имеющуюся таблицу.
В таблице можно удалять или добавлять колонки и/или ограничения.
Кроме того, для колонок можно менять значение по умолчанию.
DROP TABLE Имя таблицы CASCADE RESTRICT Этот оператор позволяет удалять имеющуюся таблицу.
Вместе с таблицей удаляются и ограничения, определенные для этой таблицы.
Если указан параметр RESTRICT, то таблица удаляется только если нет никаких ссылок на эту таблицу в других ограничениях или представлениях.
Если указан параметр CASCADE, то удаляются также и все объекты, ссылающиеся на эту таблицу.
CREATE ASSERTION Имя утверждения Ограничение check [Атрибуты ограничения]

[Back]