Назад    Оглавление    Далее

Изменение таблиц и ограничений

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

Добавление столбца.

Синтаксис

ALTER TABLE таблица

ADD (столбец тип_данных [DEFAULT выраж] [NOT NULL]

[, столбец тип_данных]...);

где

таблица

Имя таблицы.

столбец

Имя столбца.

тип_данных

Тип данных и длина столбца.

DEFAULT выраж

Определение значения нового столбца по умолчанию

NOT NULL

Ограничение NOT NULL для нового столбца

Новый столбец становится в таблице последним.

Пример: Добавление столбца COMMENTS в таблицу S_REGION.

Изменение столбца.

Можно измененить такие параметры столбца, как тип данных, размер, значение по умолчанию, ограничение NOT NULL.

Синтаксис:

ALTER TABLE таблица

MODIFY (столбец тип_данных [DEFAULT выраж] [NOT NULL]

[,столбец тип_данных]...);

 

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

Пример: Увеличение максимальной ширины столбца TITLE таблицы S_EMP до 50 символов.

Добавление ограничения.

С помощью команды ALTER TABLE можно добавить или удалить (но не измененить) ограничения; разрешить или запретить действие ограничения.

Синтаксис

ALTER TABLE таблица

ADD|MODIFY ([CONSTRAINT ограничение] тип (столбец);

Пример: Добавление ограничения FOREIGN KEY для таблицы S_EMP.

Удаление ограничения.

Синтаксис

ALTER TABLE таблица

DROP {PRIMARY KEY | UNIQUE (столбец) |

CONSTRAINT ограничение [CASCADE]};

Пример: Удаление ограничения для менеджеров из таблицы S_EMP.

Пример: Удаление ограничения PRIMARY KEY для таблицы S_DEPT и связанного с ним ограничения FOREIGN KEY для столбца S_EMP.DEPT_ID.

Запрет и разрешение ограничений.

Для запрета ограничения используется предложение DISABLE команды ALTER TABLE. Для одновременного запрета всех зависимых ограничений используется параметр CASCADE.

Синтаксис:

ALTER TABLE таблица

DISABLE | ENABLE CONSTRAINT ограничение [CASCADE];

Разрешение ограничений.

Разрешение ранее запрещенного ограничения достигается с помощью предложения ENABLE. Разрешение ограничений UNIQUE и PRIMARY KEY вызывает автоматическое создание индексов UNIQUE и PRIMARY KEY.

Примеры:

Удаление таблицы

Синтаксис

DROP TABLE таблица [CASCADE CONSTRAINTS];

где

таблица

Имя таблицы

CASCADE CONSTRAINTS

При указании этого параметра будут удалены все зависимые ограничения.

 

Команда удаляет все данные из таблицы, все незафиксированные транзакции фиксируются, все индексы удаляются. Откат этой команды невозможен.

 

Изменение имени объекта

Для изменения имени таблицы, представления, последовательности или синонима используется команда RENAME.

Синтаксис:

RENAME имя_1 TO имя_2

где

имя_1

Старое имя объекта.

имя_2

Новое имя.

Пример: Таблица S_ORD переименовывается в S_ORDER. При выполнении этой команды Вы должны быть владельцем объекта.

Усечение таблицы

Команда TRUNCATE удаляет все строки таблицы и освобождает память, занятую под таблицу.

Синтаксис:

TRUNCATE TABLE таблица;

Пример: Удалаются все строки из таблицы S_ITEM, структура таблицы сохраняется.

Примечание: Вернуть удаленные строки после выполнения команды TRUNCATE невозможно. Удалять строки можно и командой DELETE.

Добавление комментариев к таблице

Синтаксис:

COMMENT ON таблица IS ‘текст’;

где

таблица

Имя таблицы, для которой добавляется комментарий.

текст

Текст комментария.

Пример: Добавляется комментарий к таблице S_EMP.

Для отмены комментария используется пустая строка символов. Увидеть комментарии можно с помощью следующих представлений словаря данных: ALL_COL_COMMENTS, USER_COL_COMMENTS, ALL_TAB_COMMENTS и USER_TAB_COMMENTS.

Для закрепления материала можно выполнить Практическое задание 9


Назад    Оглавление    Далее