Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция 2-1 СУБД.doc
Скачиваний:
6
Добавлен:
11.06.2015
Размер:
133.63 Кб
Скачать

4. Значение по умолчанию

При определении поля таблицы можно указать значение по умолчанию, используя ключевое слово DEFAULT и выражение для этого значения; в выражении можно использовать функции, но нельзя использовать другие поля этой записи и подзапросы. Отметим, что при отсутствии ключевого слова DEFAULT значением по умолчанию считается значение NULL. В командах INSERT, если значение поля добавляемой записи отсутствует, значение поля устанавливается в соответствии со значением вычисленного выражения; при необходимости в команде INSERT можно явно указать другое значение.

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

5. Изменение определения таблицы

Для изменения определения таблицы предназначена команда ALTER TABLE. С ее помощью можно выполнить следующие основные действия:

  • изменение имени таблицы;

  • изменение имени существующего поля;

  • добавление нового поля;

  • удаление существующего поля;

  • изменение типа существующего поля;

  • изменение выражение для виртуального поля;

  • создание нового ограничения;

  • удаление существующего ограничения;

  • изменение имени существующего ограничения;

  • отключение и включение действия ограничений;

  • изменение физических параметров размещения таблицы и т.д.

Работа с командой ALTER TABLE обладает рядом особенностей. Прежде всего, следует иметь в виду, что эти команды могут исполняться после того как таблицы создана и заполнена данными (собственно, для этой цели эта команда и предназначена). Поэтому изменение структуры существующей таблицы влияет на данные в строках. Попытки выполнения команд ALTER TABLE могут привести, прежде всего, к полной или частичной потере существующих данных, а с другой стороны – к невозможности выполнить эти изменения по различным причинам ввиду наличия данных.

6. Удаление таблиц

Для удаления SQL-таблиц используется команда DROP TABLE.

При удалении таблицы происходят следующие действия:

  1. удаляются все строки таблицы;

  2. из системного каталога удаляется определение таблицы;

  3. Удаляются все связанные с этой таблицей объекты, а именно: ограничения, индексы и триггеры.

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

Таким образом, удаление таблицы при помощи команды DROP TABLE является в значительной степени радикальной мерой, к которой следует прибегать, принимая во внимание ее последствия.

Таблица по умолчанию не может быть удалена, если ее поля использованы в существующих ограничениях FOREIGN KEY других таблиц. Для игнорирования данного правила следует использовать следующий вариант команды:

DROP TABLE "Клиент(кп)" CASCADE CONSTRAINTS

Интересным вопросом является, что же происходит с данными после удаления таблицы. В ранних версиях Oracle удаление таблицы было необратимым действием; единственным способом восстановления данных было восстановление базы данных с резервных копий. В современной системе поддерживается понятие корзины, в которую помещаются удаленные объекты базы данных и из которой эти объекты можно при необходимости восстановить.

FLASHBACK TABLE ToDrop TO BEFORE DROP

- восстановаление таблицы из корзины, однако индекс востановлен не будет. Теперь корзина пуста, а таблица восстановлена и может использоваться в запросах; индекс же необходимо создать заново.

Если необходимо удалить таблицу без помещения ее предварительно в корзину, следует использовать следующий вариант:

DROP TABLE ToDrop PURGE

Для очистки корзины можно вопользоваться командой PURGE RECYCLEBIN.

Команда FLASHBACK TABLE может использоваться и для восстновления таблицы к состоянию в некотрый момент времени. Однако восстновление объектов из корзины возможно не всегда; это связано с подробностями настройки сервера. Для более детального и полного описания работы с корзиной следует обращаться к документации.