Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
4_2 Создание объектов.doc
Скачиваний:
3
Добавлен:
13.11.2019
Размер:
94.21 Кб
Скачать

2.2 Изменение доменов

Изменение доменов осуществляется командой ALTER DOMAIN. С помощью данной команды можно изменить любые характеристики домена, кроме типа данных и установок NOT NULL. Сделанные изменения воздействуют на атрибуты всех таблиц, где использовался измененный домен.

Команду ALTER DOMAIN может выдать либо создатель домена, либо пользователь с правами системного администратора.

Для изменения типа поля или установки NOT NULL необходимо удалить домен, если это возможно (если домен используется для описания столбцов каких-либо таблиц, то удалить его нельзя), а затем создать его снова с требуемыми характеристиками.

Синтаксис команды изменения домена:

ALTER DOMAIN name_domain {

[SET DEFAULT {literal|NULL|USER}]

[DROP DEFAULT]

[ADD [CONSTRAINT] CHECK (<dom_condition>)]

[DROP CONSTRAINT]

};

[DROP DEFAULT] – удалить значение по умолчанию;

[ADD [CONSTRAINT] CHECK (<dom_condition>)] – добавить ограничение;

[DROP CONSTRAINT] – удалить ограничение.

Замечание! Выполнить замену ограничения одной командой нельзя. Сначала ограничение нужно удалить, а затем добавить.

Пример.

ALTER DOMAIN D_ELEM DROP CONSTRAINT;

ALTER DOMAIN D_ELEM ADD CHECK(VALUE IN (‘H’, ‘LI’, ‘NA’, ‘K’));

ALTER DOMAIN USERNAME SET DEFAULT ‘***’;

2.3 Удаление доменов

Удаление доменов осуществляется командой DROP DOMAIN. Если домен используется в каких-либо таблицах, то удалить его нельзя.

Синтаксис команды:

DROP DOMAIN name_domain;

3. Таблицы

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

3.1 Создание таблицы

Создание таблицы осуществляется с использованием команды CREATE TABLE, которая создает структуру таблицы и в самом простом случае определяет название таблицы, перечень полей с указанием типов данных, а также контрольными ограничениями. Кроме того, при создании таблицы можно задать первичный ключ, внешние ключи, дополнительные виды контроля на уровне записей.

Упрощенный синтаксис команды:

CREATE TABLE <имя таблицы>

(описание полей таблицы);

Описание полей таблицы:

Name { <тип данных> |COMPUTED [BY] (<выражение>)| <имя домена>}

[DEFAULT {literal|NULL|USER}]

[NOT NULL]

[<ограничение столбца>];

Name – заголовок столбца;

COMPUTED [BY] (<выражение>)- выражение для вычисляемого столбца. Значения вычисляемых столбцов рассчитывается всякий раз при обращении к ним. Выражение может быть любым допустимым в InterBase выражением, возвращающим единственное значение простого типа. Например, допустимы выражения с предложением SELECT.

<имя домена> - имя ранее определенного домена.

[<ограничение столбца>] – описывает ограничение логической целостности столбца.

InterBase позволяет задавать ограничения на отдельные столбцы и на таблицу в целом., называемые ограничением логической целостности, которые задают порядок управления зависимостями между столбцом и таблицей, а также между таблицей и таблицей. Они воздействуют на все выполняемые с таблицей действия, автоматически поддерживаясь системой.

Конструкция <ограничение столбца> имеет следующий синтаксис:

[CONSTRAINT <имя ограничения>]

{UNIQUE

| PRIMARY KEY

| CHECK (<конкретное условие>)

| REFERENCES <имя другой таблицы> [(список атрибутов)]

[ON DELETE {NO ACTION| CASCADE | SET DEFAULT| SET NULL}]

[ON UPDATE {NO ACTION| CASCADE | SET DEFAULT| SET NULL}]

}

CONSTRAINT <имя ограничения> – ограничению можно присваивать имя, при выдаче системой сообщения об ошибке данного ограничения, будет выдано имя ограничения, которое нарушено.

UNIQUE – значение столбца должно быть уникальным. Не допускает пустых значений. Уникальных ключей может быть несколько.

PRIMARY KEY – поля является первичным ключом таблицы.

CHECK (<конкретное условие>) – задает условие, которому должно соответствовать значение определяемого столбца. В данной конструкции можно использовать любые данные текущей строки таблицы, а также результат запроса SELECT.

REFERENCES <имя другой таблицы> [(список атрибутов)]

[ON DELETE {NO ACTION| CASCADE | SET DEFAULT| SET NULL}]

[ON UPDATE {NO ACTION| CASCADE | SET DEFAULT| SET NULL}] } – задает ограничение внешнего ключа для описываемого столбца. ограничение означает, что данное поле соответствует первичному ключу (указанному в списке атрибутов) в таблице «имя другой таблицы» и в этой таблице имеется строка с указанным значением. Если список опущен, то предполагается список из одного поля, имеющего то же имя, что и описываемое.

Дополнительные режимы ON DELETE и ON UPDATE задают действия, производимые при удалении или обновлении ключевых полей в родительской (имя другой таблицы) таблице.

  • NO ACTION – нет действий (по умолчанию);

  • CASCADE - каскадное удаление (замена) влечет удаление (замену) во всех строках дочерней таблицы при удалении (замене) соответствующих им строк родительской таблицы;

  • SET DEFAULT – при удалении (замене) строк родительской таблицы, соответствующие им поля в дочерней переустанавливаются в значения по умолчанию.

  • SET NULL - при удалении (замене) строк родительской таблицы, соответствующие им поля в дочерней переустанавливаются в пустые значения.

Ограничение, накладываемое на всю таблицу имеет синтаксис:

[CONSTRAINT <имя ограничения>]

{{PRIMARY KEY | UNIQUE} (<список атрибутов>)

| FOREIGN KEY (<список атрибутов>) REFERENCES <имя другой таблицы>

[ON DELETE {NO ACTION| CASCADE | SET DEFAULT| SET NULL}]

[ON UPDATE {NO ACTION| CASCADE | SET DEFAULT| SET NULL}]

| CHECK (<условие>)

}

Ограничение FOREIGN KEY означает, что значение в указанном столбце или списке столбцов соответствует первичному ключу в таблице «имя другой таблицы» и в этой таблице имеется строка с указанным значением.

CHECK (<условие>) – задает условие, проверяемые по значениям группы столбцов.

Замечание! Конструкция задающая внешние ключи для всей таблицы и конструкция, задающая внешний ключ для отдельного столбца порождают внешний ключ, но при задании списка столбцов в первом случае перечисляются столбцы описываемой таблицы, а во втором – той таблицы, на которую осуществляется ссылка.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]