Далее существующая базовая таблица может быть изменена в любое время с
помощью оператора ALTER TABLE. .Поддерживаются следующие изменения:
■ ■BBBBBBB добавление новых столбцов;
■ ■BBBBBBB определение для существующего столбца нового значения по умолчанию
(заменяющего предыдущее значение, если оно было);
■ ■BBBBBBB удаление для столбца существующего значения по умолчанию;
■ ■BBBBBBB удаление существующего столбца;
■ ■BBBBBBB указание нового ограничения целостности для базовой таблицы;
■ ■BBBBBBB удаление существующего ограничения целостности для базовой таблицы.
Приведем пример лишь для первого случая:
ALTER TABLE S ADD COLUMN DISCOUNT INTEGER DEFAULT -1 ;
С помощью этого оператора добавляется столбец DISCOUNT (типа INTEGER) в
базовой таблице поставщиков S. Все существующие строки в этой таблице
расширяются с четырех столбцов до пяти; во всех случаях значение нового пятого
столбца равно –1.
И наконец, существующая базовая таблица может быть уничтожена с
помощью оператора DROP TABLE, который имеет следующий синтаксис:
DROP TABLE base-table option ;
Здесь опция option, как и в случае оператора DROP DOMAIN, будет или
RESTRICT, или CASCADE. Если указана опция RESTRICT и на базовую таблицу
есть ссылки в каком-нибудь определении представления или ограничении
целостности, операция DROP будет отвергнута. Если указана опция CASCADE; то
операция DROP будет выполнена (таблица будет удалена со всеми ее строками), а
любые определения представлений, которые имеют ссылки на эту таблицу, и
ограничения целостности будут также уничтожены.
Информационная схема
В SQL существует аналог того, что принято называть каталогом, — это
информационная схема. В действительности знакомые нам термины "каталог" и
"схема" используются в SQL, но с весьма специфическими для SQL значениями.
Нестрого говоря, каталог в SQL состоит из дескрипторов для отдельной базы
данных,
16[2]
а схема состоит из дескрипторов той части этой базы данных, которая
относится к некоторому отдельному пользователю. Другими словами, может быть
любое число каталогов, каждый из которых делится на произвольное число схем.
Однако требуется, чтобы каждый каталог содержал ровно одну схему, называемую
INFORMATION_SCHEMA, которая, с точки зрения пользователя, является схемой,
выполняющей функцию обычного "каталога".
Таким образом, информационная схема состоит из набора таблиц SQL,
содержимое которых фактически отражает (точно определенным образом) все
определения из всех остальных схем рассматриваемого каталога. Точнее,
информационная схема согласно определению содержит набор представлений
гипотетической "схемы определения". Для поддержки схемы определения
16[2]
Если быть точным, то необходимо отметить, что в стандарте SQL вообще не существует такого
понятия, как "база данных"! Есть набор данных, который описан определенным каталогом.
Однако неоправданно представлять это как базу данных.