Изменение домена.
Для изменения характеристик ранее определенного домена используется оператор SQL ALTER DOMAIN. Синтаксис этого оператора выглядит следующим образом: domain_alternation::= ALTER DOMAIN domain_name domain_alternation_actiondomain_alternation_action::= domain_default_alternation_action | domain_constraint_alternation_actionКак видно из синтаксических правил, при изменении определения домена можно выполнить действие по изменению раздела значения по умолчанию либо изменить ограничение домена. Для первого варианта действует следующий синтаксис: domain_default_alternation_action::= SET default_definition | DROP DEFAULTВ случае установки нового значения по умолчанию (SET) это значение автоматически применяется ко всем столбцам, определенным на данном домене. Более точно, это значение становится новым значением по умолчанию. Операция не оказывает влияния на состояние существующих строк таблиц базы данных. В случае отмены раздела значения по умолчанию в определении домена (DROP) существовашее значение домена по умолчанию становится значением по умолчанию каждого столбца, который определен на данном домене и для которого не специфицировано собственное значение по умолчанию. Действие по изменению ограничения домена определяется следующим синтаксисом: domain_constraint_alternation_action::= ADD domain_constraint_definition | DROP CONSTRAINT constraint_nameДействие по добавлению нового определения ограничения домена (ADD) приводит к тому, что новое условие добавляется через AND к существующему ограничению домена. Если к моменту выполнения соответствующего оператора ALTER DOMAIN существуют столбцы некоторых таблиц, текущие значения которых противоречат новому ограничению, то СУБД должна отвергнуть этот оператор ALTER DOMAIN. Действие по отмене ограничения домена (DROP) приводит к исчезновению соответствующей части общего ограничения соответствующего домена, что, естественно, не влияет на существующие значения столбцов имеющихся таблиц. Отмена домена. Чтобы отменить ранее созданное определение домена, нужно воспользоваться оператором DROP DOMAIN в следующем синтаксисе: DROP DOMAIN domain_name {RESTRICT | CASCADES}
Средства определения, изменения и отмены определения базовых таблиц в SQL. Определение базовой таблицы. Определение столбца: возможно использование определенного ранее домена. Определение ограничений целостности: для столбца, для таблицы, для всей базы. Ограничения первичного ключа, ограничения внешнего ключа.
Пример: (1) CREATE TABLE EMP ((2) EMP_NO EMP_NO PRIMARY KEY,(3) EMP_NAME VARCHAR(20) DEFAULT 'Incognito' NOT NULL,(4) EMP_BDATE DATE DEFAULT NULL CHECK (VALUE >= DATE '1917-10-24'),(5) EMP_SAL SALARY,(6) DEPT_NO DEPT_NO DEFAULT NULL REFERENCES DEPT ON DELETE SET NULL,(7) PRO_NO PRO_NO DEFAULT NULL,(8) FOREIGN KEY PRO_NO REFERENCES PRO (PRO_NO) ON DELETE SET NULL,(9) CONSTRAINT PRO_EMP_NO CHECK ((SELECT COUNT (*) FROM EMP E WHERE E.PRO_NO = PRO_NO) <= 50));
|